ndk 数据转换

ndk 数据转换

c->java

c类型 java类型 办法 备注
string String env->NewStringUTF(str.c_str())
指针 Long Clock *clock=Clock();
long clock_jlong = reinterpret_cast(clock);

java->c

java类型 c类型 办法
jobject jobject jobject object;
this->object = env->NewGlobalRef(object);
不使用的时候要释放
env->DeleteGlobalRef(object);
jstring
char* jstringToChar(JNIEnv *env, jstring jstr) {
    int length = (env)->GetStringLength(jstr);
    const jchar* jcstr = (env)->GetStringChars(jstr, 0);
    char* rtn = (char*) malloc(length * 2 + 1);
    int size = 0;
    size = WideCharToMultiByte( CP_ACP, 0, (LPCWSTR) jcstr, length, rtn,
            (length * 2 + 1), NULL, NULL);
    if (size <= 0)
        return NULL;
    (env)->ReleaseStringChars(jstr, jcstr);
    rtn[size] = 0;
    return rtn;
}
posted @ 2021-02-20 21:06  seekting  阅读(99)  评论(0)    收藏  举报