我也是用了这个方法,但是没有解决,以下是我的两种 C++源码,但是就不行,请大家帮忙解决,谢谢!
一、
jboolean iscopy;
const char * szStr = (*env).GetStringUTFChars( s, &iscopy);
char * str = new char[lstrlen(szStr)] ;
lstrcpy(str,szStr);
AfxMessageBox( str );
delete str ;
(*env).ReleaseStringUTFChars( s, szStr );
二、
const jbyte *str = (const jbyte *)(*env).GetStringUTFChars( s, JNI_FALSE );
AfxMessageBox( (const char*)str );
(*env).ReleaseStringUTFChars( s, (const char*)str );
在java声如下:
public class test{
public test() {
}
public native void showmsg();
//实现调用的DLL中函数申明
static
{
System.loadLibrary ("test");
}
public static String toChinese(String strvalue)
{
try{
if(strvalue==null)
return null;
else
{
strvalue = new String(strvalue.getBytes("GBK"),"GB2312");
return strvalue.toString();
}
}
catch(Exception e){
return null;
}
}
}