2014-02-27 84 views
8

我有一個c++頭文件,其中包含一些c++代碼調用的函數。這些功能應映射到相應的Java函數。 所以它有點像回調,但我不知道如何映射它們在JavaCpp如何使用JavaCpp將函數調用從C++映射到Java?

因此,舉例來說,我們有一個頭文件:

#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

你可以參照JNI(Java本地接口)。這會幫助你。 – rajenpandit

+0

請參閱http://www.javaworld.com/article/2077513/learn-java/java-tip-17--integrating-java-with-c--.html –

+1

請按照此處的說明進行操作:https:// github .com/bytedeco/javacpp-presets/wiki/Create-New-Presets –

回答

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

+0

但是我正在使用'javacpp'so,因此我需要一種方法將其與映射,最好。 – hammer

相關問題