melmager
Erfahrenes Mitglied
Erstmal vorweg ich habe zwar das dicke C Buch hier liegen aber noch keine Ahnung von C
ich befasse mich erstmal mit Java
Nun möchte ich Java und C verbinden und komme da sehr ins schleudern
Das ist eine JNI Funktion die stellt die Schnittstelle zu Java her.
Von Java bekomme ich ein Array aus Bytes (sollte identisch mit Char sein)
im body habe ich mein Input Array - so weit so gut
die ersten 4 Inhalte soll zu den Variablen ctn,dad,sad und lc werden auch noch nicht wild.
Jezt kommt der Punkt wo es stockt cmd soll ein char array werden und in lc oder body[3]
steht drin wiewiele werte als array cmd übergeben werden müssen.
Zwei Möglichkeiten sehe ich:
Ein Array dynamisch anlegen und ein Teilbereich umcopieren oder ein Teil des Array von Body übergeben.
bei Beiden Versionen komme ich nicht klar wie das gehen soll
Ich glaube auch die Teileübergabe währe eleganter oder?
ich befasse mich erstmal mit Java
Nun möchte ich Java und C verbinden und komme da sehr ins schleudern
Code:
JNIEXPORT jbyteArray JNICALL Java_Ctapi_ctdata
(JNIEnv *env, jobject obj, jint jctn, jbyteArray jbuffer)
{
unsigned short ctn,lc,lr;
char re;
unsigned char *dad,*sad,*cmd,*res;
jbyteArray jb;
jsize exlen;
jsize len = (*env)->GetArrayLength(env, jbuffer);
jbyte *body = (*env)->GetByteElements(env, jbuffer, 0);
re = CT_data(ctn,&dad,&sad,lc,cmd,&lr,res);
// create byte array
jb=(*env)->NewByteArray(env, exlen);
// fill data from buf
(*env)->SetByteArrayRegion(env, jb, 0, exlen);
(*env)->ReleaseByteArray(env , jbuffer, body, 0);
return jb;
}
Das ist eine JNI Funktion die stellt die Schnittstelle zu Java her.
Von Java bekomme ich ein Array aus Bytes (sollte identisch mit Char sein)
im body habe ich mein Input Array - so weit so gut
die ersten 4 Inhalte soll zu den Variablen ctn,dad,sad und lc werden auch noch nicht wild.
Jezt kommt der Punkt wo es stockt cmd soll ein char array werden und in lc oder body[3]
steht drin wiewiele werte als array cmd übergeben werden müssen.
Zwei Möglichkeiten sehe ich:
Ein Array dynamisch anlegen und ein Teilbereich umcopieren oder ein Teil des Array von Body übergeben.
bei Beiden Versionen komme ich nicht klar wie das gehen soll
Ich glaube auch die Teileübergabe währe eleganter oder?
Zuletzt bearbeitet: