参考:http://blog.csdn.net/xiaominghimi/article/details/7602984

//java中string转C++中string
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

//jstring to char*

std::string jstringTostring(JNIEnv* env,jstring jstr)

{

char* rtn = NULL;

jclass clsstring = env->FindClass("java/lang/String");

jstring strencode = env->NewStringUTF("utf-8");

jmethodID mid = env->GetMethodID(clsstring,"getBytes","(Ljava/lang/String;)[B");

jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr,mid,strencode);

jsize alen = env->GetArrayLength(barr);

jbyte* ba = env->GetByteArrayElements(barr,JNI_FALSE);

if (alen > 0)

{

rtn = (char*)malloc(alen + 1);

memcpy(rtn,ba,alen);

rtn[alen] = 0;

}

env->ReleaseByteArrayElements(barr,0);

std::string stemp(rtn);

free(rtn);

return stemp;

}

#endif

//调用手机信息接口

std::string callJinPhoneNum() {

std::string strNum;

//Android:调用手机号码接口

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

JniMethodInfo minfo;

bool isHave;

isHave = JniHelper::getStaticMethodInfo(minfo,PACKAGE_NAME,"getPhoneNum","()Ljava/lang/String;");

if (!isHave) {

log("JNI:exitGame method is not exist");

}

else{

jstring jsNum = (jstring)minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID);

strNum = jstringTostring(minfo.env,jsNum);

}

#endif

return strNum;

} void callJinTime(std::string strTime) { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo minfo; bool isHave; isHave = JniHelper::getStaticMethodInfo(minfo,"getTime","(Ljava/lang/String;)V"); if (!isHave) { log("JNI:exitGame method is not exist"); } else{ jstring jstr = minfo.env->NewStringUTF(strTime.c_str()); minfo.env->CallStaticObjectMethod(minfo.classID,minfo.methodID,jstr); } #endif }

总结

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

cocos2d c 调用java_cocos2d-x之C++ 调用Java函数并接收返回值相关推荐

  1. C++中函数模板的返回值是模板类型参数的调用方法

    1 函数模板 模板定义以关键字template开始,后接模板形参表,模板形参表是用尖括号扩住的一个或多个模板形参的列表,形参之间以逗号分隔.关于函数模板的详细介绍,请参考<C++中模板函数及模板 ...

  2. java doget 返回json_HttpClient调用doGet、doPost、JSON传参及获得返回值

    调用 doPost:map传参 Map map = new HashMap<>(); map.put("test","test"); String ...

  3. c#调用c++ dll const char* String类型转换问题。传值,与接收返回值问题

    C++原型 extern "C" __declspec(dllexport) const char* GetUnicoide(const char* gb2312) {int le ...

  4. excel vba 调用java_excel中vba调用java程序并获取返回值

    在工作中,为提高excel处理效率会写一些vba宏,有时还需要调用外部java程序(比如访问webservice接口的java程序),下面的事例可做参考 一.编写简单的java调试程序 public ...

  5. .net 调用 sql server 自定义函数,并输出返回值

    数据库结构: 表内的数据: 自定义函数: 递归查出 树下所有节点 ,参数是 父id create function sss(@id as int)returns @t table(id int not ...

  6. java 调用python脚本过程_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  7. Go 学习笔记(15)— 函数(01)[函数定义、函数特点、多值返回、实参形参、变长参数,函数作为参数调用]

    1. 函数定义 Go 语言最少有个 main() 函数.函数声明告诉了编译器函数的名称,返回类型和参数. func funcName(parameter_list)(result_list) {fun ...

  8. android 调用js怎么获取返回值_js 函数

    函数是一个特殊的对象 具名函数 function 函数名(形式参数1,形式参数2){ 语句 return 返回值 } 匿名函数 上门的具名函数,去掉函数名就是匿名函数 let a =function( ...

  9. 【Android 逆向】Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )

    文章目录 前言 一.x86 架构的返回值获取 二.ARM 架构远程调用 前言 在之前的博客 [Android 逆向]Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 ...

最新文章

  1. 巴特沃斯带通滤波器matlab程序_带通带阻滤波器频率计算方法如何算
  2. Oracle单机报监听不支持服务,(转)oracle 启动监听 报“监听程序不支持服务” 解决...
  3. Discuz! 7.2以下版本及各uc产品api接口Get webshell漏洞
  4. html class和id,css教程之样式表的基本语法(二) class(类)和id的一个小实例
  5. 【渝粤教育】 国家开放大学2020年春季 1013金融统计分析 参考试题
  6. 外部服务发现之 ingress(一) traefik 的安装使用
  7. java利用循环打印AVA,JAVA语言-AVA文件流
  8. readfile读取串口数据_谈一谈使用字体库加密数据仿58同城
  9. apex英雄机器人探路者怎么玩_《王者荣耀》新英雄澜怎么玩 《王者荣耀》新英雄澜连招推荐...
  10. linux下修改防火墙端口对外开放方法
  11. Simulink中利用Powergui进行FFT分析,但是信号源始终为空
  12. 谷歌地图网页版入口_巧用谷歌指令,利用Google Maps开发挖掘客户
  13. hdu5773 The All-purpose Zero(LIS变形)
  14. 计算机专业知识更新速度快,最近及计算机专业知识.doc
  15. IntelliJ IDEA 的 Code Coverage 测试
  16. 微信小程序canvas实现签名功能
  17. FleaPHP 开发指南
  18. 英雄联盟登录服务器显示错误码,lol登录失败_TGP一直验证账号,最后出现登录超时,错误码:1,L......
  19. Xilinx K7_Microblaze的Tmrintc定时器中断使用(ISE14.7)
  20. 2020.7.25 PAT线上考试后记

热门文章

  1. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  2. linux练习 串口跟进程6,linux下串口测试程序
  3. python 类可以调用实例变量_python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法...
  4. oracle11 处理器数,11G AWR中%Total CPU与%Busy CPU指标的疑问
  5. 【OpenCV 例程200篇】84. 由低通滤波器得到高通滤波器
  6. qt html导pdf 页眉,如何使用wkhtmltopdf unpatched qt在每个页面上添加页眉和页脚?
  7. 小程序弹出层禁止列表滑动_是时候展现真正的技术了!小程序教程来了——百战Web前端课程更新05.07...
  8. 【Jmeter篇】1小时轻松搞定项目接口自动化测试与数据驱动
  9. Mysql常用分组聚合函数(统计行的数量、最大值、最小值、平均值、求和)
  10. WinLogon事件通知包编程