0
我一直在尋找一點點來解決如何解決這個問題,但沒有發現我很正確地回答了這個問題。我想我很接近;我會想一個jint *和int *,以及使用(* ENV) - > SetIntArrayRegion(...)函數,從正常組成jintArray的JNI函數int []
// This function will take an array of global integers that already exist in the
// c-side of the program, we'll call them 'data_ints[91]' (there are 91 just to clarify.)
/*...*/
int data_ints[] = {1,2,3,4,/*...*/90,91};
JNIEXPORT jintArray JNICALL Java_MarsRoverGUI_getData
(JNIEnv *, jobject, jint)
{
jintArray out_ints;
jint *outElements;
int i;
out_ints = (*env)->NewIntArray(env, 91);
outElements = (*env)->GetIntArrayElements(env,out_ints,0);
for (i = 0; i < 91; i++)
{
outElements[i] = data_ints[i];
}
(*env)->ReleaseIntArrayElements(env,out_ints,outElements,0);
// returns data_ints as a jintArray
return out_ints;
}
就離我有多近?我沒有一種有效的方法來測試JNI /:隨時提出建議!
grazie全部
看起來不錯,但你只需要找到一種有效的測試方法。你總是可以嘗試編譯和鏈接它,並執行一個測試程序。 – EJP