Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (4) tipo de datos JNI

Programación JNI (C/C++)

Sección 1: Inicio rápido

Una demostración simple para ejecutar rápidamente el proceso Para obtener más información, consulte Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (1) Inicio rápido

Sección 2: Ejemplos detallados (versión en lenguaje C)

Esta sección proporciona una descripción detallada (C) de los ejemplos internos en la Sección 1. Para obtener detalles, consulte Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (2) Ejemplo de explicación detallada (versión del lenguaje C)

Sección 3: Explicación detallada de ejemplos (versión en lenguaje C++)

Esta sección se centra en la descripción detallada de los ejemplos internos en la Sección 1 (C++).Para obtener más información, consulte Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (3) Ejemplo detallado (versión del lenguaje C++)

Sección 4: Tipos de datos JNI

Los tipos de datos en Java se dividen en matrices primitivas, de tipo Objeto y [].

La relación de mapeo entre los 8 tipos de datos básicos de Java y los tipos de datos básicos de C en jni.h es la siguiente:

Tipos primitivos de Java Tipos primitivos de C definición de tipo JNI
En t largo jint
largo _int64 largo
byte carácter firmado jbyte
booleano carácter sin firmar jbooleano
carbonizarse corto sin firmar jchar
corto corto jcorto
flotar flotar jflotar
doble doble jdoble

Además, jni.h también define la relación de mapeo de la clase Object de Java. Aunque la superclase final de Class, String, Throwable, etc. es Object, pero debido a que se usa más comúnmente, tiene una definición y un método de operación separados.

Tipo de objeto Java Tipo C (definido en JNI) definición de tipo JNI
Objeto _objeto* proyecto de trabajo
Clase _clase j* jclase
arrojable _jlanzable* jlanzable
Cadena _jstring* jstring
[] _cortar* cortar

Tenga en cuenta que el jarray aquí no es la clase Array, y la clase Array se asignará a un objeto normal, sino a la matriz original definida con [].

No es necesario entrar en detalles sobre los tipos de datos básicos, ya que estos tienen tipos nativos correspondientes en C, dependiendo principalmente de los métodos relacionados con los datos del tipo de objeto.

Sección 5: Métodos de datos de objetos como la clase jstring y la clase jobject

Esta sección describe en detalle los métodos de operación de jstring (java.lang.String) y jobject (Objeto) más utilizados en JNI. Para obtener detalles, consulte Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (5) métodos class y jobject de datos de objetos como class

Sección 6: Ejemplos de código para varios tipos de datos JNI

Esta sección combina las secciones anteriores 1 a 5 para escribir un ejemplo de código JNI-C++ que contiene varios tipos de datos. Para obtener más información, consulte Uso de C/C++ para implementar la interfaz de método nativo (JNI) de Java (6) Ejemplo de códigos de tipos de datos JNI múltiples

Apéndice: Código

Enlace de empaquetado de recursos para todo el proyecto: JNI_C/C++_Demo

Supongo que te gusta

Origin blog.csdn.net/O_1CxH/article/details/125587980
Recomendado
Clasificación