GetStringUTFChars paramètre de la fonction
Je suis le développement de l'application Android en utilisant jni.
Et j'ai utilisé GetStringUTFChars fonction comme suit
jboolean iscopy;
const char* trainfile = (env)->GetStringUTFChars(jstr, &iscopy);
Mais j'ai vu un autre exemple comme ceci
const char *inCStr = (*env)->GetStringUTFChars(env, inJNIStr, NULL);
Les deux fonctionne bien. Mais je ne trouve aucune documentation sur l'ancienne grammaire même qui est plus concis.
Où puis-je trouver de la documentation, et quelle Est la différence entre eux?
Avez-vous envisager de consulter la JNI cahier des charges? Tout est là.
OriginalL'auteur plhn | 2013-09-24
Vous devez vous connecter pour publier un commentaire.
Le premier exemple est le C++, la syntaxe et ne fonctionne que dans les programmes C++. Le second est pour les programmes en C.
La raison, les deux sont différents, c'est qu'en C++ JNIEnv est une classe et les fonctions sont des fonctions de membre de l'env de l'objet, tandis que dans C JNIEnv est un pointeur vers une struct. Depuis ce que vous recevez en tant que paramètre est un pointeur vers JNIEnv, en C, vous devez déréférencement d'accéder à de la les membres de la structure, c'est pourquoi vous devez utiliser
*env
en place deenv
.Cela devrait être traité dans un texte sur l'utilisation de JNI, mais vous pouvez également le trouver en lisant le code dans le fichier d'en-tête.
OriginalL'auteur Joni