• Jni 类型转换接口


    1、JString char*互相转化

    char* JstringToChar(JNIEnv* env, jstring jstr)
    {
            char* rtn = NULL;
            jclass clsstring = env->FindClass("java/lang/String");
            jstring strencode = env->NewStringUTF("utf-8");
            jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B");
            jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode);
            jsize alen = env->GetArrayLength(barr);
            jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);
            if (alen > 0)
            {
                    rtn = new char[alen+1];
                    memcpy(rtn, ba, alen);
                    rtn[alen] = 0;
            }
            env->ReleaseByteArrayElements(barr, ba, 0);
            return rtn;
    }
    
    jstring CharToJstring(JNIEnv* env, const char* pat)
    {
            jclass strClass = env->FindClass("Ljava/lang/String;");
            jmethodID ctorID = env->GetMethodID(strClass, "<init>", "([BLjava/lang/String;)V");
            jbyteArray bytes = env->NewByteArray(strlen(pat));
            env->SetByteArrayRegion(bytes, 0, strlen(pat), (jbyte*)pat);
            jstring encoding = env->NewStringUTF("utf-8");
            return (jstring)env->NewObject(strClass, ctorID, bytes, encoding);
    }
    View Code
  • 相关阅读:
    网管的自我修养-网络系统
    网管的自我修养-电脑维护
    iOS继承与类别
    iOS支付宝集成
    HTTP HTTPS TCP/IP UDP
    AFNetworking新版本3.0的迁移
    GCD使用 并行串行队列同步异步执行组合情况
    使用vim遇到的问题
    mac取色
    网络解析
  • 原文地址:https://www.cnblogs.com/zhxfl/p/3276467.html
Copyright © 2020-2023  润新知