C调用java
jclass TestProvider; jobject mTestProvider; jmethodID showtoast; jmethodID sayHello; JNIEXPORT void JNICALL Java_com_beats_music_musicbeats_NdkTest_setTemp (JNIEnv * env, jobject jobj, jstring jstr){ // 1. C 中映射 类 TestProvider=(*env)->FindClass(env,"com/beats/music/musicbeats/active/ToastUtil"); // 2.C中新建对象 jmethodID construction_id = (*env)->GetMethodID(env, TestProvider,"<init>", "()V"); mTestProvider = (*env)->NewObject(env, TestProvider,construction_id); // 3.C中映射方法 // 静态: showtoast = (*env)->GetStaticMethodID(env, TestProvider, "showtost","(Ljava/lang/String;)V"); // 非静态: // sayHello = (*jniEnv)->GetMethodID(jniEnv, TestProvider, "sayHello","(Ljava/lang/String;)V"); //4.调用 // 调用静态: (*env)->CallStaticVoidMethod(env,TestProvider,showtoast,jstr); // 非静态: // (*jniEnv)->CallVoidMethod(jniEnv, mTestProvider, sayHello,jstrMSG); };
char*转jstring
将char*转成jstring /** * jni中有对应GetStringChar方法 * 把一个jstring转换成一个c语言的char* 类型. */ char* _JString2CStr(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsstring = (*env)->FindClass(env, "java/lang/String"); jstring strencode = (*env)->NewStringUTF(env,"GB2312"); jmethodID mid = (*env)->GetMethodID(env, clsstring, "getBytes", "(Ljava/lang/String;)[B"); jbyteArray barr = (jbyteArray)(*env)->CallObjectMethod(env, jstr, mid, strencode); // String .getByte("GB2312"); jsize alen = (*env)->GetArrayLength(env, barr); jbyte* ba = (*env)->GetByteArrayElements(env, barr, JNI_FALSE); if(alen > 0) { rtn = (char*)malloc(alen+1); //"\0" memcpy(rtn, ba, alen); rtn[alen]=0; } (*env)->ReleaseByteArrayElements(env, barr, ba,0); return rtn; }
相关推荐
有关C语言教学方法优化的探讨.pdf
相关资源: ppt课件: http://download.csdn.net/source/2418441 源代码: http://download.csdn.net/source/2419140 习题答案:http://download.csdn.net/source/2419155 ***************************************...
主要介绍了C语言实现直角坐标转换为极坐标的方法,涉及C语言进行三角函数与数值运算相关操作技巧,需要的朋友可以参考下
主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
这是关于用C语言处理图象的一些基本方法,以及相关的函数。同过它你可以大至了解到C语言的图象处理方法。
相关资源: ppt课件: http://download.csdn.net/source/2418441 源代码: http://download.csdn.net/source/2419140 习题答案:http://download.csdn.net/source/2419155 ***************************************...
用C语言处理图像的有关操作,能更加深刻的了解C语言
采用C语言对二叉树的前序、中序、后序、层序(使用队列)遍历方法进行了实现,含一个.c文件和一个.h文件,程序的结构比较清晰,对学习二叉树和队列的相关技术具有一定参考意义(有问题可留言交流)
38.MFC_对话框_访问控件_7种方法_C.mp4 39.MFC_对话框_复选框_单选钮.mp4 4.MFC_消息映射.mp4 40.MFC_模态对话框.mp4 41.MFC_非模态对话框.mp4 42.MFC_属性表.mp4 43.MFC_公用对话框.mp4 44.MFC_数组类-1....
汇总了计算机研究生复试有关C语言程序设计各章节简答题,使用了易于口头表达的语言进行了总结。包括C语言程序设计基本概念及各章节问题回答。可供研究生复试或相关专业岗位面试使用。如: 简述C语⾔采取了哪些措施提...
《C程序设计语言》的讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。 在计算机发展的历史上,...
主要介绍了C语言计算日期差的方法,结合具体实例形式分析了C语言针对日期转换、运算等相关操作技巧,需要的朋友可以参考下
《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。《C程序设计语言》...
在C语言中,清除定时器的方法与创建定时器的方法类似,需要使用相关的函数。以下是清除定时器的步骤:
C语言图形函数 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h 中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图 形窗口以及图形模式下的文本输出等函数。另外, ...
使用自己用C语言实现的MQTT协议来连接阿里云平台。 并利用多线程相关知识,创建一个线程专门接收来自阿里云平台的数据。 在demo中,给出了 CONNECT连接 PUBLISH发布消息 SUBSCRIBE订阅 UNSUBSCRIBE取消订阅 PING保活...
本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。本书倡导基于接口的C语言设计理念及其实现技术,深入详细地描述了24个C语言接口及其...
有关C语言中常用的一些字符串处理函数,详细的介绍了每个函数的使用方法。
C 语言具备了面向过程程序设计的基本要求,在诸多领域无可替代,也适合于构建程序设计基础。所以它是一门程序设计的公共基础课程,相信也...文档介绍 结构、枚举、联合的有关内容,《C语言程序设计 现代方法》配套讲义
c语⾔数据库查询系统,C语⾔实现sqlite3数据库查询的基本⽅ 法 sqlite回传函数相关 说了3种基本⽅法:callback,gettable和预处理stmt⽅法 下⾯给出测试代码和测试⽤数据库,代码如下 #include #include #include #...