将本机类型转换为jni类型

时间:2012-10-21 16:06:56

标签: java c++ c java-native-interface native

看问题Parameter passing in native a method。 如果我想编写一个本机方法Traverser(String path),它返回一个值该怎么办?如何在Java类型中转换C中的long int类型,返回本机方法Traverser(String path)?例如,如何将long int转换为jlong​​? 如果我想写一个方法

public native long Traverser (String path),

这段代码是否正确

JNIEXPORT jlong JNICALL Java_ParallelIndexation_Traverser(JNIEnv* env, jobject obj, jstring path) 
{ 
    long int result;
    const jbyte* path2 = env->GetStringUTFChars(path, nullptr); 
    if (path2 == nullptr) 
        return; 

    result=Traverser(path2); 

    env->ReleaseStringUTFChars(path, path2); 
    return result;
} 

或者是否有必要转换

long int result 

jlong?

是否可以使用Java_ParallelIndexation_Traverser而不是

long int result;

宣布

jlong result;

0 个答案:

没有答案