当前位置:网站首页>jni中jstring与char*互转
jni中jstring与char*互转
2022-08-02 03:34:00 【刚入视频监控行业的菜鸡】
一、jstring转char*或string
假如jni中定义了这么一个接口,用于java将参数传给顶层c,如下
JNIEXPORT jint JNICALL Java_com_init_data(JNIEnv *env, jobject, jstring s)
{
string sId = env->GetStringUTFChars(s, 0);
//char *pId = env->GetStringUTFChars(s, 0);
}
二、string或char*转jstring
有时候需要底层c将字符串返回给java,如下面的接口定义:
JNIEXPORT jstring JNICALL Java_com_getRegCode(JNIEnv *env, jobject)
{
string strRegisterCode=“1234567890”;
jclass strClass = (env)->FindClass(“java/lang/String”);
jmethodID ctorID = (env)->GetMethodID(strClass, “”, “([BLjava/lang/String;)V”);
jbyteArray bytes = (env)->NewByteArray(strRegisterCode.size());
(env)->SetByteArrayRegion(bytes, 0, strRegisterCode.size(), (jbyte *) strRegisterCode.c_str());
jstring encoding = (env)->NewStringUTF(“GB2312”);
return (jstring) (env)->NewObject(strClass, ctorID, bytes, encoding);
}
边栏推荐
猜你喜欢
同时求最大值与最小值(看似简单却值得思考~)
2020 - AAAI - Image Inpainting论文导读《Learning to Incorporate Structure Knowledge for Image Inpainting》
rosdep update failure solution (pro-test effective)
Application of electronic flow on business trip
进程(番外):自定义shell命令行解释器
【LeetCode】设计链表
振芯科技GM8285C:功能TTL转LVDS芯片简介
Process (in): process state, process address space
2019 - ICCV - 图像修复 Image Inpainting 论文导读《StructureFlow: Image Inpainting via Structure-aware ~~》
Basic IO (on): file management and descriptors
随机推荐
Process (in): process state, process address space
【LeetCode】Add the linked list with carry
Arduino lights up nixie tubes
R语言 —— 多元线性回归
【plang1.4.3】语言新特性:集合
HDMI转MIPI CSI东芝转换芯片-TC358743XBG/TC358749XBG
进程(中):进程状态、进程地址空间
Mac安装MySQL详细教程
CCF刷题之旅--第一题
剑指Offer 32.Ⅲ从上到下打印二叉树
LT8918L LVDS转MIPI芯片技术支持资料
STM32F4 CAN 配置注意的细节问题
【plang 1.4.3】定时器的使用
unity相关的功能链接
Lightly 支持 Markdown 文件在线编写(文中提供详细 Markdown 语法)
TC358860XBG BGA65 东芝桥接芯片 HDMI转MIPI
剑指Offer 64.求1+2+...+n 递归+&&
实现动态库(DLL)之间内存统一管理
分割回文串 DP+回溯 (LeetCode-131)
【 LeetCode 】 design list