我在c ++ dll上使用jni:“sharedMemLib.dll”
我的java应用程序正确加载这些dll两次:sharedMemLib.dll和sharedMemLib2.dll
我想将一个特定的dll与一个类的实例相关联,例如,一个JNIInterface实例将访问sharedMemLib.dll,而另一个JNIInterface实例将访问sharedMemLib2.dll。
2 dll具有相同的功能,我可以选择哪种方式来访问?
答案 0 :(得分:1)
如果两个DLL中的入口点名称相同,请忘记它。即使您尝试在同一操作系统下运行2个JVM,我也不认为它会起作用。您需要两个不同的包名(或两台机器)。我做了一些测试,在我的系统上,加载的第一个DLL是使用的那个。现在,如果您正在使用从JNI到Java的回调,则由于调用中的第二个参数(类型jobject),回调将被定向到另一个实例。