Frage

Ich versuche, C ++ von Java mit GCJ mit dem CNI aufzurufen. Bisher kann ich Java -Code von C ++ aufrufen. Wie kann ich mit dem CNI C ++ von Java aufrufen?

War es hilfreich?

Lösung

Ich werde etwas auf Pcents Antwort ausdehnen, um das zu lesen GCJ/CNI -Dokumente.

Ich glaube, dass der Schlüssel darin besteht, das gesamte Konzept "CNI C ++ Klasse" zu verstehen.

  • Die Schaffung einer CNI C ++ - Klasse wird in erklärt diese Seite.
  • Sie können Java -Code von einer CNI C ++ - Klasse anrufen (vorausgesetzt, Sie haben Header -Dateien generiert) - das ist es, was Sie bereits tun (Java von C ++ aufrufen).
  • Der entscheidende Punkt ist das CNI C ++ - Methoden können von Java aufgerufen werden (Weil diese Klassen eine Reihe von Einschränkungen haben, um sie zu Java-kompatibel zu machen). Und weil die CNI -Klasse nur eine (bestimmte) C ++ - Klasse ist, können Sie sie auch mit anderen Bibliotheken verknüpfen, wie Sie jede C ++ - Klasse verknüpfen würden.

Die meisten von den Dokumentation beschreibt, wie sich die Java -Konventionen in einer CNI C ++ - Klasse übersetzen.

Andere Tipps

Versuchen Sie es zu lesen GCJ/CNI -Dokumente

Ich bin kein guter Java-Programm, aber ich bin mit C#/C ++ Interop vertraut. Die beste Lösung für mich, von natives C ++ bis verwaltet C# zu verwenden, war die Verwendung Rückrufe. Ich denke, das gilt auch für Jni

Versuchen Sie es zu lesen: http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top