I’m using Java for a small app. It’s a rewrite of an existing MFC project. There is an existing dll that I need to change to enable access from Java using JNI. All of this Java stuff is new to me, so I’m having a little trouble and feeling rather dense when I read other forum posts. In the existing dll I have a function like this:
extern "C" __declspec(dllexport) bool Create()
{
return TRUE;
}
Dumb question time. How do I properly set it up to be called by Java?
I tried this:
JNIEXPORT jboolean JNICALL Create()
{
return TRUE;
}
I’m including jni.h and everything compiles fine. However, when I call it from Java I get UnsatisfiedLinkError. I’m calling it from Java using this:
public static native boolean CreateSession();
System.load("D:\\JavaCallTest.dll");
Create();
Could someone kindly push me in the proper direction? I sincerely appreciate any help.
Thanks,
Nick
You need to include the Java class name and path in your native code, for example if your native method was declared in Java as:
and the class path was (for example)
com.example.NativeCodeyou would declare your method in native as follows:All JNI methods have a JNIEnv pointer and class as their first two parameters.