我有一个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
?
答案 0 :(得分:0)
首先创建一个java文件,您需要在其中定义自己的函数。然后使用javah
附带的jdk
实用程序生成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