即使把一个String传到java的方法中,也不能改变它
何况是把String传入到c++的本地方法中呢
C++中生成一个GetStringUTFChars的时候会生成一个拷贝的你可以把那个String作为一个对象的属性,传对象到dll中改变这个属性
或者你声明的本地方法返回一个String (jstring)吧
何况是把String传入到c++的本地方法中呢
C++中生成一个GetStringUTFChars的时候会生成一个拷贝的你可以把那个String作为一个对象的属性,传对象到dll中改变这个属性
或者你声明的本地方法返回一个String (jstring)吧
我不大熟悉java,按理说String是一个类对象,作为参数传入不能改变其属性?还有第二个问题,我想代码应该没错但就是找不到这个对象里面的String,每次读出来都是空的。我想现在只有用byte[]传了
convertANSIToUNI(env,&ch_response);//从c++ *char=>java jstring
{
int slen = strlen(cStr);
if(!env||slen==0)
return NULL;
jchar* buffer = new jchar[slen];
int len = MultiByteToWideChar(CP_ACP,0,cStr,strlen(cStr),buffer,slen);
if(len>0 && len < slen)
buffer[len]='\0';
jstring js = env->NewString(buffer,len);
delete [] buffer;
return js;
}