所以我建立了这个 C 库。它通过 JNI 调用 Java 方法,一切正常。但是我怎样才能从 Java 回调到我的 C 应用程序中呢?
我想象以下内容:我确实有一个函数,我获取它的地址,我有一个函数指针。我将指针传递给 Java(例如作为回调、事件处理程序或任何东西)。如何从 Java 中调用该函数?
是否有一种方法可以动态地显式地将 a 绑定native void method();
到函数指针或其他东西?
所以我建立了这个 C 库。它通过 JNI 调用 Java 方法,一切正常。但是我怎样才能从 Java 回调到我的 C 应用程序中呢?
我想象以下内容:我确实有一个函数,我获取它的地址,我有一个函数指针。我将指针传递给 Java(例如作为回调、事件处理程序或任何东西)。如何从 Java 中调用该函数?
是否有一种方法可以动态地显式地将 a 绑定native void method();
到函数指针或其他东西?
是否有一种方法可以动态和显式绑定本机 void 方法();到函数指针什么的?
就在这里!您可以使用RegisterNatives将 Java 方法与 C/C++ 函数动态绑定。
要更改实现,您可以先调用 UnregisterNatives,然后再调用 RegisterNatives。