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