char *getStringElements(JNIEnv *jenv, jstring string) { if(string) { jbyteArray array = (jbyteArray)jenv->CallObjectMethod(string, getGetBytesId(jenv)); return getByteArrayElements(jenv, array); } return 0; }
char *getStringElements(JNIEnv *jenv, jstring string) { if(string) { jbyteArray array = (jbyteArray)jenv->CallObjectMethod(string, getGetBytesId(jenv)); const jsize length = jenv->GetArrayLength(array); const jbyte *chars = jenv->GetByteArrayElements(array, 0); char *copy = new char[length+1]; for(int i = 0; i < length; i++) { copy[i] = (char)chars[i]; } copy[length] = 0; jenv->ReleaseByteArrayElements(array, (jbyte *)chars, 0); return copy; } return 0; }