参考了网上很多方法,普遍写的比较简单
在http://www.cublog.cn/u/12951/showart.php?id=68851获得了2个方法处理乱码
jstring ->char是
char *JNU_GetStringNativeChars(JNIEnv *env, jstring jstr)
正常OK
char->jstring是jstring JNU_NewStringNative(JNIEnv *env, const char *str)
失败在jmethodID jmethod_str = (*env)->GetMethodID(env,jcls_str, "", "([B)V");
提示Exception in thread "main" java.lang.NoSuchMethodError: 问题2个
1:如何JNI参数的传出,我需要传出一个消息串,我想应该是jstring 类型,现在我使用
2:char->Jstring转换存在上面说的问题,我该如何使用
char *stemp ="这是JNI传出的消息";
joutstring = (jstring)stemp;
在JAVA里面得到的是空值
System.out.println(joutstring )为空,该如何解决?
2个问题都是50分,谢谢,请大侠们帮助解决
请注意:环境JDK142,HP-UNIX,可能只要LINUX或者其它UNIX环境方法都能通用,但是VC下的方法是不行的VC实现的一些方法包括W_CHAR我都试过了,仍然乱码
使用字节GetByteArrayElements方法也存在一些小问题
在http://www.cublog.cn/u/12951/showart.php?id=68851获得了2个方法处理乱码
jstring ->char是
char *JNU_GetStringNativeChars(JNIEnv *env, jstring jstr)
正常OK
char->jstring是jstring JNU_NewStringNative(JNIEnv *env, const char *str)
失败在jmethodID jmethod_str = (*env)->GetMethodID(env,jcls_str, "", "([B)V");
提示Exception in thread "main" java.lang.NoSuchMethodError: 问题2个
1:如何JNI参数的传出,我需要传出一个消息串,我想应该是jstring 类型,现在我使用
2:char->Jstring转换存在上面说的问题,我该如何使用
char *stemp ="这是JNI传出的消息";
joutstring = (jstring)stemp;
在JAVA里面得到的是空值
System.out.println(joutstring )为空,该如何解决?
2个问题都是50分,谢谢,请大侠们帮助解决
请注意:环境JDK142,HP-UNIX,可能只要LINUX或者其它UNIX环境方法都能通用,但是VC下的方法是不行的VC实现的一些方法包括W_CHAR我都试过了,仍然乱码
使用字节GetByteArrayElements方法也存在一些小问题
详细的你可以看看这个帖:
http://community.csdn.net/Expert/topic/5128/5128179.xml?temp=.2409174
GetStringUTFChars 昨天已经试验过了,不成,
你给的帖子没有说道返回部分,郁闷中,现在我只能return,其它方法都是乱码
jmethodID jmethod_str = (*env)->GetMethodID(env,jcls_str, "<init>", "([B)V"); 就OK
感谢 yovn 的答复
我又不能给自己分....