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