用java调用C++ DLL
我正在用Java开发一个小应用程序。这是对现有MFC项目的重写。我需要更改现有的dll,以便使用JNI从Java访问。所有这些Java的东西对我来说都是新的,所以当我阅读其他论坛帖子时,我有点麻烦,感觉很闷。在现有的dll中,我有这样一个函数:
extern "C" __declspec(dllexport) bool Create()
{
return TRUE;
}
愚蠢的提问时间。如何正确地设置它以供Java调用
我试过这个:
JNIEXPORT jboolean JNICALL Create()
{
return TRUE;
}
我包括jni。一切都很好。然而,当我从Java调用它时,我得到了不满意的LinkError。我用这个从Java调用它:
public static native boolean CreateSession();
System.load("D:\\JavaCallTest.dll");
Create();
有人能帮我找到正确的方向吗?我真诚地感谢你的帮助
谢谢
尼克
# 1 楼答案
您需要在本机代码中包含Java类名和路径,例如,如果您的本机方法在Java中声明为:
类路径是(例如)
com.example.NativeCode
您可以用native声明您的方法,如下所示:所有JNI方法的前两个参数都是JNIEnv指针和类