double getDoubleForKeyJNI(const char* pKey,double defaultValue){ JniMethodInfo t; if (JniHelper::getStaticmethodInfo(t,CLASS_name,"getDoubleForKey","(Ljava/lang/String;D)D")) { Jstring stringArg = t.env->NewStringUTF(pKey); jdouble ret = t.env->CallStaticDoubleMethod(t.classID,t.methodID,stringArg); t.env->DeleteLocalRef(t.classID); t.env->DeleteLocalRef(stringArg); return ret; } return defaultValue;}
上面的代码摘自Java_org_cocos2dx_lib_Cocos2dxHelper.cpp(cocos2dx源码),
这里只关注字符串的传递,字符串通过下面的函数,把C++的字符转化为Jstring:
Jstring stringArg = t.env->NewStringUTF(pKey);然后传递给下面的函数:
CallStaticDoubleMethod
使用完后,一定要记得释放:
<pre name="code" > t.env->DeleteLocalRef(t.classID);<span > t.env->DeleteLocalRef(stringArg);</span>总结
以上是内存溢出为你收集整理的cocos2dx C++调用java -- 字符串传递全部内容,希望文章能够帮你解决cocos2dx C++调用java -- 字符串传递所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)