Question

Je suis en train d'invoquer C ++ de Java en utilisant GCJ à l'aide du CNI, jusqu'à présent, je suis en mesure d'invoquer le code Java à partir de C ++. Comment puis-je Invoke C ++ de Java à l'aide du CNI?

Était-ce utile?

La solution

Je vais étendre un peu sur la réponse de pcent lire GCJ / CNI Docs .

Je crois que la clé est de comprendre l'ensemble "CNI C ++ classe" concept.

  • La création d'une classe de CNI C est expliqué dans cette page .
  • Vous pouvez appeler le code Java de la classe d'un CNI C (à condition que vous avez généré des fichiers d'en-tête) -. C'est ce que vous faites déjà (appeler Java C ++)
  • Le point clé est que Les méthodes de CNI C peuvent être appelées à partir de Java (parce que ces classes ont une série de restrictions sur eux pour les rendre compatible Java). Et parce que la classe CNI est seulement un (type particulier de) classe C ++, vous pouvez aussi le lier à d'autres bibliothèques comme vous le feriez relier une classe C ++.

La plupart des documents décrit comment les conventions Java se traduisent en une CNI classe C de.

Autres conseils

Je ne suis pas un bon programmeur Java, mais je suis familier avec C # / C ++ Interop. La meilleure solution pour moi d'appeler de C ++ natif pour C # géré à l'aide a été Callbacks . Je pense que cela vaut aussi pour JNI

Essayez de lire: http: // www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top