Pregunta

Estoy tratando de invocar C ++ de Java usando GCJ usando el CNI, hasta ahora puedo invocar el código Java de C ++. ¿Cómo puedo invocar C ++ de Java usando el CNI?

¿Fue útil?

Solución

Extenderé un poco en la respuesta de Pcent para leer el Documentos GCJ/CNI.

Creo que la clave es comprender todo el concepto de "clase CNI C ++".

  • La creación de una clase CNI C ++ se explica en esa página.
  • Puede llamar al código Java desde una clase CNI C ++ (siempre que haya generado archivos de encabezado), eso es lo que ya hace (llamando a Java desde C ++).
  • El punto clave es que Los métodos CNI C ++ se pueden invocar desde Java (Porque estas clases tienen un conjunto de restricciones para hacerlas compatibles con Java). Y debido a que la clase CNI es solo un (tipo particular de) clase C ++, también puede vincularla a otras bibliotecas tal como lo haría con cualquier clase C ++.

La mayoría de documentación Describe cómo se traducen las convenciones de Java en una clase CNI C ++.

Otros consejos

Intenta leer Documentos GCJ/CNI

No soy un buen programador de Java, pero soy familiar con C#/C ++ interop. La mejor solución para llamar desde C ++ nativo a C# administrado fue usar Devoluciones de llamada. Creo que esto se aplica también a Jni

Intenta leer: http://www.tidytutorials.com/2009/07/java-native-interface-jni-example-using.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top