JNI - 怎么将 char* 转换成 jstring
JNI - 如何将 char* 转换成 jstring
上面的代码我调试通过的。
如何将JNI中将 char* 字符串转换成 jstring? 这个问题困扰了我好久,也用不同的方法进行调试过,都没有成功。
今天无意中调试成功了下面的代码,可以方便的将char*转换成jstring。
jstring CharTojstring(JNIEnv* env, char* str) { jsize len = strlen(str); jclass clsstring = (*env)->FindClass(env, "java/lang/String"); jstring strencode = (*env)->NewStringUTF(env,"GB2312"); jmethodID mid = (*env)->GetMethodID(env,clsstring, "<init>", "([BLjava/lang/String;)V"); jbyteArray barr = (*env)-> NewByteArray(env,len); (*env)-> SetByteArrayRegion(env,barr,0,len,(jbyte*)str); return (jstring)(*env)-> NewObject(env,clsstring,mid,barr,strencode); }
上面的代码我调试通过的。
转载:http://www.verydemo.com/demo_c89_i124898.html