美文网首页
2018-06-06 jni (c++)入门

2018-06-06 jni (c++)入门

作者: 鼓励自己前进 | 来源:发表于2018-06-06 14:14 被阅读0次

    1:c++中返回一个字符串

    extern "C"

    JNIEXPORT jstring JNICALL

    Java_com_winmu_ev_JNI_JniLib_getString(JNIEnv *env, jclass type) {

    std::string hello = "fromC++";

        return env->NewStringUTF(hello.c_str());

    }

    2:c++中返回一个数组

    extern "C"

    JNIEXPORT jintArray JNICALL

    Java_com_winmu_ev_JNI_JniLib_getArray(JNIEnv *env, jclass type) {

    jintArray array;

    jint buf[]={0,0,0,0,0};

    array = env->NewIntArray(3);

    env->SetIntArrayRegion(array,0,3,buf);

      return array;

    }

    3:c++中返回数组的和,传入的参数是数组 (array 是传入的数组)

    extern "C"

    JNIEXPORT jint JNICALL

    Java_com_winmu_ev_JNI_JniLib_getSum(JNIEnv *env, jclass type, jintArray arr_) {

    jint *arr = env->GetIntArrayElements(arr_, NULL);

    jint sum = 0;

    jint len = env->GetArrayLength(arr_);

        for(int i = 0; i

          sum = sum + *(arr+i);

    }

     env->ReleaseIntArrayElements(arr_, arr, 0);

        return sum;

    }

    4: c++中调用java中类的方法, 没有参数 只有返回值String

    // 定义一个静态方法 , 提供给JNI调用

    public  voidmethodCalledByJni(String msgFromJni){}

    5: c++中调用java中类的静态方法, 没有参数 只有返回值String

    6: c++中调用java中类的方法 二个参数 第一个参数是int 第二个参数是String 返回值是String

    7: c++中调用java中的全局变量

    8: c++中调用java中的静态的变量

    相关文章

      网友评论

          本文标题:2018-06-06 jni (c++)入门

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