kitabı "Essential JNI'yı: Java Native Interface" Rob Gordon tarafından bir C dizesine bir jstring dönüştürmek için aşağıdaki kod örneği içerir: sadece isCopy
doğrudur ReleaseStringUTFChars
eğer çağrılarıEğer ReleaseStringUTFChars çağırayım mı?
const char* utf_string;
jboolean isCopy;
utf_string = env->GetStringUTFChars(str, &isCopy);
/* ... use string ... */
if (isCopy == JNI_TRUE) {
env->ReleaseStringUTFChars(str, utf_string);
}
Not söyledi.
Ama kitap Java Native Interface: Programmer's Guide and Specification (alternatif link: http://192.9.162.55/docs/books/jni/html/objtypes.html#5161
) diyor ki:
ReleaseString-Chars çağrı GetStringChars * isCopy JNI_TRUE veya JNI_FALSE için grubu olup olmadığına gereklidir. ReleaseStringChars ya kopya serbest bırakır ya da GetStringChars kopyasını geri belirtmemesine üzerine olarak, örnek unpins.
Bu, Gordon'un kitabındaki bir hata olduğunu farz ediyorum.
nerede 'str' defiined edilir? – SomethingSomething