jni生成dll可能遇到问题的总结

本文详细介绍了JNI的基本概念及其用途,并提供了从生成头文件到创建DLL的具体步骤。包括了解决常见问题如缺少mspdb80.dll、找不到jni.h以及编译错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1。JNI是什么,有什么用,一般步骤可以参看http://java.chinaitlab.com/JDK/36677.html;(生成头文件的命令可直接用: javah -jni XXX 或者 javah XXX)

2。使用VC8的CL。EXE生成头文件时可以缺失mspdb80.dll,需要将Microsoft Visual Studio 8/Common7/IDE下的 mspdbsrv.exe, msobj80.dll, mspdb80.dll, mspdbcore.dll复制到VC/bin下。

3。生成头文件时可能找不到 jni.h,可以直接将/jdk/include/jni.h ,/jdk/include/win32/jawt_md.h ,/jdk/include/win32/jni_md.h复制到/VC/include目录中 。参看http://pichcar.javaeye.com/blog/353729;

4。生成dll时可能遇到error C2055: expected formal parameter list, not a type list错误,需要修改头文件和C文件,例如:

.java中声明的方法为:public native int getInt();  .h文件中可能会生成: JNIEXPORT jint JNICALL Java_JniTest_getInt

  (JNIEnv *, jobject );  这里要将.h中的声明改为:JNIEXPORT jint JNICALL Java_JniTest_getInt  (JNIEnv *je, jobject jo); C文件也对应修改一下。参看:http://forums.sun.com/thread.jspa?threadID=5156040

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值