美文网首页
C和C++与Java字符串的互相操作

C和C++与Java字符串的互相操作

作者: 凌烟醉卧 | 来源:发表于2019-09-25 19:27 被阅读0次

C或C++中使用NewStringUTF来创建字符串

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(
        JNIEnv *env,
        jobject /* this */) {
    std::string hello = "你好";
    return env->NewStringUTF(hello.c_str());
}

使用GetStringChars或者GetStringUTFChars将Java字符串转为C或者C++字符串

extern "C"
JNIEXPORT void JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject instance,
                                                          jstring s_) {
    const char *s = env->GetStringUTFChars(s_, 0);
    env->ReleaseStringUTFChars(s_, s);
}

相关文章

网友评论

      本文标题:C和C++与Java字符串的互相操作

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