2014-01-21 54 views
0

我想返回一個指向JNI中的double數組的指針,然後在Java代碼中使用這個值。所以我這樣做:在JNI中返回一個雙指針

JNIEXPORT jlong JNICALL Java_com_sistoleaudiocapture_Processing_prueba_1nativa(
     JNIEnv * env, jclass, jlong retorno, jbyteArray data, jint lenbytes) { 

//PROCESS 

long dirt; 
dirt=(long)d_est; 
    return(dirt); 




} 

在我的Java funcition:

public void prueba(byte[] data, int lenbytes) { 

     prueba=prueba_nativa(retorno, data, lenbytes); 


    } 

所以現在,我怎樣才能接取我的價值觀?

感謝

回答

1

您可以創建額外的功能來訪問本機端陣列,讓他們接觸到Java。或者您可以在您的本機代碼中創建一個jDoubleArray,並將其返回給Java。

const double * arrayPtr = (const double *)&yourDoubleArray; 
jint lengthOfArray = 0; //Fill dynamically with the length of your native double array. 

jdoubleArray doubleArray = (*env)->NewDoubleArray(env, lengthOfArray); 
(*env)->SetDoubleArrayRegion(env, doubleArray, 0, 16, arrayPtr); 

return doubleArray; 
+0

謝謝,我會試試這個 –