私はこの問題を解決する方法を理解するために少し探していましたが、私が見つけたものは何もこの質問に正しく答えていません。私は近くにいると思います。jint*とint*が必要で、(* env)-> SetIntArrayRegion(...)関数を使用します。
// 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をテストする効果的な方法がありません/:方法を提案してください!
グラツィエすべて