cocos2dx C++调用java -- 字符串传递

cocos2dx C++调用java -- 字符串传递,第1张

概述double getDoubleForKeyJNI(const char* pKey, double defaultValue){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, "getDoubleForKey", "(Ljava/lang/String;D)D")) {
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 -- 字符串传递所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存