java - 如何使用 JavaCpp 将函数调用从 C++ 映射到 Java?

标签 java c++ javacpp

我有一个c++ 头文件,其中包含一些c++ 代码调用的函数。这些函数应该映射到相应的 Java 函数。 所以它有点像回调,但我不知道如何在 JavaCpp 中映射它们。

例如我们有一个头文件:

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*F_ADDDCALLBACK)(uint32_t arg1, uint32_t arg2, int8_t *arg3);
extern F_ADDDCALLBACK m_CB;

void F_RegisterCallbacks(F_ADDDCALLBACK cb);
void F_Init();
void F_SomeOtherFunction(uint32_t arg1, uint8_t *arg2);

#ifdef __cplusplus
}
#endif

当从一些c++ 代码调用这些函数时,它应该依次调用一些java 代码。 我如何在 JavaCpp 中映射它?

最佳答案

首先创建一个java文件,你需要在其中定义自己的函数。然后使用jdk自带的javah工具生成c头文件。通过包含此头文件,您需要继续执行 c 代码。

更多信息请引用JNI(Java Native Interface)。

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzaha%2Fjniex.htm

http://docs.oracle.com/javase/1.5.0/docs/guide/jni/spec/jniTOC.html

关于java - 如何使用 JavaCpp 将函数调用从 C++ 映射到 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22062824/

相关文章:

java - 不带 Lambda 的 CompletableFuture.supplyAsync()

java - MultipartEntity 类型已弃用

java - Google Cast - 无法解析 mSelectedDevice

c++ - 让合并排序在链表上工作?

android - Tensorflow:如何为 Android 编译 libtensorflow_cc.so

java - 如何在java中动态嵌套for循环?

c++ - 如何使用 swig 将 const 字符串参数从 perl 传递到 c++

c++ - 结构的互锁交换

java - 是否可以在pom中定义javacpp-preset的环境?

opencv - JavaCV 将 Java 数组传递给带有@StdVector 的函数