本人小白,建了一个c++ clr项目
里面代码这样写的(定义一个test方法):
然后编译成dll,然后java调用,java代码:
可以输出load testDll.dll success,也就是调用dll成功,但是我想调用里面的test方法:
public static void main(String[] args) {
//System.out.println(Dll.INSTANCE.runTest("love"));
System.out.println(System.getProperty("java.version"));//输出当前jdk版本号
System.out.println(System.getProperty("sun.arch.data.model"));//输出当前jdk所用平台
WordUtils w=new WordUtils();
System.out.println(w.test(2));
}
却直接抛异常提示:
java.lang.UnsatisfiedLinkError: com.edu.utils.WordUtils.test(I)I
百度说dll中找不到这个方法。。
有没有会的大神教教我,是不是c++代码写错了?
java如何调c++ clr类库项目的dll中的方法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- whoisliang 2018-09-21 02:36关注
java通过JNA调用的时候,函数名称也是有规定的:
package pkg;class Cls {
native double f(int i, String s); ...
}
Implementing a Native Method Using C++
extern "C" /* specify the C calling convention */jdouble Java_pkg_Cls_f__ILjava_lang_String_2 (
JNIEnv *env, /* interface pointer */ jobject obj, /* "this" pointer */ jint i, /* argument #1 */ jstring s) /* argument #2 */
{
const char *str = env->GetStringUTFChars(s, 0); ... env->ReleaseStringUTFChars(s, str); return ...
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题