美文网首页
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