`

相关C方法

    博客分类:
  • jni
 
阅读更多

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

    有关C语言教学方法优化的探讨.pdf

    C语言程序设计 现代方法 第二版 习题答案 C Programming: A Modern Approach

    相关资源: ppt课件: http://download.csdn.net/source/2418441 源代码: http://download.csdn.net/source/2419140 习题答案:http://download.csdn.net/source/2419155 ***************************************...

    C语言实现直角坐标转换为极坐标的方法

    主要介绍了C语言实现直角坐标转换为极坐标的方法,涉及C语言进行三角函数与数值运算相关操作技巧,需要的朋友可以参考下

    C语言实现BMP转换JPG的方法

    主要介绍了C语言实现BMP转换JPG的方法,涉及C#图片格式转换的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    C语言图象处理方法-一些常用函数

    这是关于用C语言处理图象的一些基本方法,以及相关的函数。同过它你可以大至了解到C语言的图象处理方法。

    C语言程序设计 现代方法 第二版 源代码 C Programming: A Modern Approach, source code

    相关资源: ppt课件: http://download.csdn.net/source/2418441 源代码: http://download.csdn.net/source/2419140 习题答案:http://download.csdn.net/source/2419155 ***************************************...

    图象处理方法(C语言)

    用C语言处理图像的有关操作,能更加深刻的了解C语言

    二叉树4种遍历方法的C语言实现

    采用C语言对二叉树的前序、中序、后序、层序(使用队列)遍历方法进行了实现,含一个.c文件和一个.h文件,程序的结构比较清晰,对学习二叉树和队列的相关技术具有一定参考意义(有问题可留言交流)

    77G 22套C语言 C++ 数据结构 程序设计视频课程合集 C丨C++相关学习视频全套视频教程

    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语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。 在计算机发展的历史上,...

    C语言计算日期差的方法示例

    主要介绍了C语言计算日期差的方法,结合具体实例形式分析了C语言针对日期转换、运算等相关操作技巧,需要的朋友可以参考下

    《c程序设计语言(英文版)》《the c programming language 》 word版

    《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。《C程序设计语言》...

    c语言 清除定时器的方法

    在C语言中,清除定时器的方法与创建定时器的方法类似,需要使用相关的函数。以下是清除定时器的步骤:

    C语言绘图函数使用方法详解

    C语言图形函数 Turbo C提供了非常丰富的图形函数, 所有图形函数的原型均在graphics. h 中, 本节主要介绍图形模式的初始化、独立图形程序的建立、基本图形功能、图 形窗口以及图形模式下的文本输出等函数。另外, ...

    C语言实现的MQTT协议连接阿里云

    使用自己用C语言实现的MQTT协议来连接阿里云平台。 并利用多线程相关知识,创建一个线程专门接收来自阿里云平台的数据。 在demo中,给出了 CONNECT连接 PUBLISH发布消息 SUBSCRIBE订阅 UNSUBSCRIBE取消订阅 PING保活...

    C语言接口与实现

    本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。本书倡导基于接口的C语言设计理念及其实现技术,深入详细地描述了24个C语言接口及其...

    有关C语言的知识

    有关C语言中常用的一些字符串处理函数,详细的介绍了每个函数的使用方法。

    C语言-结构、联合和枚举.pptx

    C 语言具备了面向过程程序设计的基本要求,在诸多领域无可替代,也适合于构建程序设计基础。所以它是一门程序设计的公共基础课程,相信也...文档介绍 结构、枚举、联合的有关内容,《C语言程序设计 现代方法》配套讲义

    c语言数据库查询系统-C语言实现sqlite3数据库查询的基本方法.pdf

    c语⾔数据库查询系统,C语⾔实现sqlite3数据库查询的基本⽅ 法 sqlite回传函数相关 说了3种基本⽅法:callback,gettable和预处理stmt⽅法 下⾯给出测试代码和测试⽤数据库,代码如下 #include #include #include #...

Global site tag (gtag.js) - Google Analytics