从java调用用JNI编写的函数而不加载DLL
我有一个用C和JNI编写的代码,用CallStaticVoidMethod加载java类。从java调用用JNI编写的函数而不加载DLL,java,c,java-native-interface,Java,C,Java Native Interface,我有一个用C和JNI编写的代码,用CallStaticVoidMethod加载java类。 我希望java类能够从C代码中调用特定函数。 我在web上看到过一些示例,但它们都加载了一个与java类无关的DLL(使用System.loadLibrary)。 java类是否可能从加载它的原始C代码中调用函数?是的,请参见。关键是RegisterNatives()JNI函数。如果不想使用本机方法,还可以将函数指针传递给Java,并使用它来调用函数 (我用它来调用Windows上COM对象vtables
我希望java类能够从C代码中调用特定函数。
我在web上看到过一些示例,但它们都加载了一个与java类无关的DLL(使用System.loadLibrary)。
java类是否可能从加载它的原始C代码中调用函数?是的,请参见。关键是
RegisterNatives()
JNI函数。如果不想使用本机方法,还可以将函数指针传递给Java,并使用它来调用函数
(我用它来调用Windows上COM对象vtables中的函数,因为我不想为每个对象都编写包装器DLL。区别在于我不传入函数指针,而是从对象地址计算它们。)我不认为您可以。这里有一个链接可能会对您有所帮助-