【问题标题】:Calling back into a native application from Java, via JNI通过 JNI 从 Java 回调到本机应用程序
【发布时间】:2013-05-30 03:52:16
【问题描述】:

所以我构建了这个 C 库。它通过 JNI 调用 Java 方法,一切正常。但是如何从 Java 回调到我的 C 应用程序中呢?

我想象如下:我确实有一个函数,我获取它的地址,我有一个函数指针。我将指针传递给 Java(例如作为回调、事件处理程序或任何东西)。如何在 Java 中调用该函数?

是否有一种方法可以将native void method(); 动态和显式绑定到函数指针或其他东西?

【问题讨论】:

    标签: java java-native-interface function-pointers


    【解决方案1】:

    是否有一种方法可以动态和显式绑定本机 void method();到函数指针什么的?

    是的,有!您可以使用RegisterNatives 将Java 方法与C/C++ 函数动态绑定。

    要更改实现,您可以先调用 UnregisterNatives,然后再调用 RegisterNatives。

    【讨论】:

    • 要获得RegisterNatives 所需的函数签名,请在具有本机方法的类上使用javah 命令。
    猜你喜欢
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2023-04-08
    • 2012-06-16
    相关资源
    最近更新 更多