Invocar el código C ++ de Java (GCJ)
-
24-10-2019 - |
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?
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