Je suis novice en C++ et JNI, j'essaie de trouver un moyen correct de convertir l'octet [] en Java en char non signé * en C++ en utilisant JNI, et vice versa! (Je suis travaillant sur Android) Après avoir recherché une solution dans google et SO, je n'ai pas trouvé un bon moyen de convertir l'octet [] en Java en C++. Aidez-moi et fournissez une solution pour l'inverse (caractère non signé * en C++ à octet [] en Java) Merci beaucoup
Java:
private static native void nativeReceiveDataFromServer(byte[] value, int length);
JNI:
... (JNIEnv* env, jobject thiz, jbyteArray array, jint array_length)
{
???
}
PS: j'ai modifié ma question pour qu'elle soit une vraie question pour mon problème :(
Vous pouvez l'utiliser pour convertir unsigned char
tableau dans un jbyteArray
jbyteArray as_byte_array(unsigned char* buf, int len) {
jbyteArray array = env->NewByteArray (len);
env->SetByteArrayRegion (array, 0, len, reinterpret_cast<jbyte*>(buf));
return array;
}
pour convertir l'inverse ...
unsigned char* as_unsigned_char_array(jbyteArray array) {
int len = env->GetArrayLength (array);
unsigned char* buf = new unsigned char[len];
env->GetByteArrayRegion (array, 0, len, reinterpret_cast<jbyte*>(buf));
return buf;
}