我有一个需要与 Java 库交互的 C++ 应用程序。我想从 Java 端接收通知,因此它需要回调 C++ 应用程序。我找到了许多关于从 C++ 调用 Java 函数(这是最简单的部分)和从 Java 调用从 DLL 导出的 C/C++ 函数的示例。
到目前为止,我发现的一切都是如何从 Java 应用程序中的外部 C++ 函数调用 Java 回调。我需要相反的。
使用直接的 C++,这当然很容易。我只需将一个函数指针传递给该类,该类会在需要时作为回调调用。当我改为调用 Java 函数时,我该怎么做?
如果有比我在这里要求的更好的方法是整体应用程序:
我的 C++ 应用程序需要访问外部服务器,该服务器会将数据流式传输回我的应用程序。访问 API 是基于 Java 的 API。我目前的计划是构建一个处理所有 API 调用的 Java 包装器。这个包装器将使用 JNI 从我的 C++ 应用程序中调用。当收到数据时,它会尽可能多地处理它,然后将调整后的数据通知我的 C++ 应用程序。
总结一下如何从 Java 类调用 C++ 函数回调,而 Java 类又通过 JNI 从 C++ 应用程序调用。没有要加载的 DLL 供 Java 使用。尽管如果一切都可以正常连接,我可以根据需要制作一个。
函数路径:C++应用->Java类库->C++回调函数