JNI: IntArray von C++ nach Java

roxX0r

Mitglied
Hio!

Also kurz und knapp, ich möchte aus einer C++ DLL ein IntArray nach Java schaufeln.
Im kompletten Internet gibts nur was von Java nach C++ ..
irgendwie werd ich daraus nich schlau :)

bis jetzt habe ich das:
Code:
JNIEXPORT jintArray JNICALL Java_NewJFrame_go(JNIEnv *env, jobject obj) 
{   
 
POINT pos;
HWND h;
pos.x = 20;
pos.y = 20;
h = WindowFromPoint(pos);
RECT r;
GetWindowRect(h, &r);
jintArray arr[2];
arr[0] = r.left;
arr[1] = r.top;
return arr;

}

das kann er nicht kompilieren ...
 
ok habs hinbekommen :)

hier die Lösung
Code:
JNIEXPORT jintArray JNICALL Java_NewJFrame_go(JNIEnv *env, jobject obj) 
{   
 
POINT pos;
HWND h;
pos.x = 20;
pos.y = 20;
h = WindowFromPoint(pos);
RECT r;
GetWindowRect(h, &r);
jintArray arr = (*env)->NewIntArray(env,4);
jint buf[4];
buf[0] = r.left;
buf[1] = r.top;
buf[2] = r.right;
buf[3] = r.bottom;
(*env)->SetIntArrayRegion(env, arr, 0, 4, buf);
return arr;


}


eine frage vielelicht noch: das Array buf sollte ich das jetzt nicht noch freigeben ? Wie mach ich das, damit der Speicherplatz wieder frei ist ?
 
Zurück