搜索
您的当前位置:首页正文

jni中java和c++ string转换

来源:知库网
#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类型的函数

Top