Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java调用用JNI编写的函数而不加载DLL_Java_C_Java Native Interface - Fatal编程技术网

从java调用用JNI编写的函数而不加载DLL

从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

我有一个用C和JNI编写的代码,用CallStaticVoidMethod加载java类。
我希望java类能够从C代码中调用特定函数。
我在web上看到过一些示例,但它们都加载了一个与java类无关的DLL(使用System.loadLibrary)。

java类是否可能从加载它的原始C代码中调用函数?

是的,请参见。关键是
RegisterNatives()
JNI函数。

如果不想使用本机方法,还可以将函数指针传递给Java,并使用它来调用函数


(我用它来调用Windows上COM对象vtables中的函数,因为我不想为每个对象都编写包装器DLL。区别在于我不传入函数指针,而是从对象地址计算它们。)

我不认为您可以。这里有一个链接可能会对您有所帮助-