美文网首页
jni中java和c++ string转换

jni中java和c++ string转换

作者: zuolingfeng | 来源:发表于2015-08-06 22:01 被阅读2776次
#include "Prompt.h"
#include
JNIEXPORT jstring JNICALL Java_Prompt_getLine(JNIEnv *env, jobject obj, jstring prompt){
    const char* str;
    str = env->GetStringUTFChars(prompt, false);
    if(str == NULL) {
        return NULL;
    }
    std::cout << str << std::endl;
    env->ReleaseStringUTFChars(prompt, str);
    char* tmpstr = "return string succeeded"; 
    jstring rtstr = env->NewStringUTF(tmpstr);
    return rtstr;
}

在上面的例子中,作为参数的prompt不能直接被C++程序使用,先做了如下转换
str = env->GetStringUTFChars(prompt, false);将jstring类型变成一个char*类型。返回的时候,要生成一个jstring类型的对象,也必须通过如下命令,jstring rtstr = env->NewStringUTF(tmpstr);这里用到的GetStringUTFChars和NewStringUTF都是JNI提供的处理String类型的函数

相关文章

网友评论

      本文标题:jni中java和c++ string转换

      本文链接:https://www.haomeiwen.com/subject/gvkbqttx.html