2014-02-27 13 views
8

Ich habe eine c++ Header-Datei, die einige Funktionen enthält, die der Code c++ aufruft. Diese Funktion sollte den entsprechenden Java Funktionen zugeordnet werden. So ist es ein bisschen wie Rückrufe, aber ich kann nicht herausfinden, wie man sie in JavaCpp abbildet.Wie ordne ich einen Funktionsaufruf von C++ zu Java mit JavaCpp?

So zum Beispiel haben wir eine Header-Datei:

#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 

Wenn diese Funktionen von einem c++ Code aufgerufen werden, ist es wiederum sollten einige java Code aufrufen. Wie kann ich dies in JavaCpp zuordnen?

+0

Sie auf JNI (Java Native Interface) beziehen kann. Das wird dir helfen. – rajenpandit

+0

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

+1

Bitte folgen Sie den Anweisungen hier: https: // github .com/bytedeco/javacpp-presets/wiki/Create-New-Presets –

Antwort

0

Erstellen Sie zuerst eine Java-Datei, in der Sie Ihre eigenen Funktionen definieren müssen. Verwenden Sie dann javah Dienstprogramm, das mit jdk kommt, um c Header-Dateien zu generieren. Wenn Sie diese Header-Dateien hinzufügen, müssen Sie mit Ihrem c Code fortfahren.

Weitere Informationen finden Sie unter 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

Aber ich benutze 'javacpp'so Ich brauche eine Möglichkeit, um es zuzuordnen, vorzugsweise. – hammer