2016-06-02 10 views
0

Ich möchte einige .cpp Klasse und Methoden in meinem Java-Programm verwenden. Zum Beispiel habe ich p1.java, die method1 ruft. method1 ist verfügbar in p2.cpp und p2.cpp enthält p3.cpp. Ich möchte cpp Codes nicht ändern ...Aufruf von C++ - Funktion von Java ohne Änderung C++ Code

Ist es möglich? (und ich brauche .cpp und .header beide.)

Und gibt es alternative bessere Lösung? (außer Java-native Schnittstelle)?

Antwort

2

Warum Sie eine zusätzliche Schicht zwischen Java und C++ mit JNI nicht erstellen - effektiv erstellen Sie:

method1_java_cpp_layer(JNIEnv * e, jobject o) 
{ 
    extracted_information = extract_information(e, o); 
    method1(extracted_information) 
} 

Und das geht in "java_cpp_layer.cpp".

+0

Danke .... Ich habe das gemacht. Aber jetzt, wenn ich Programm (Java java_cpp_layer) laufen lasse, erhalte ich einen anderen Fehler: libjava_cpp_layer.so: undefiniertes Symbol: p2 ... Können Sie mir helfen? – faraa