Ok .... bisogna chiarire alcune cose ...Originariamente inviato da salvio78
E a te il nome e il prototipo non sembrano uguali?
Prima di tutto sappi che ho alle spalle 2 corsi di specializzazione in cui ho studiato il "C" e 7 anni di esperienza professionale con il "C" .... quindi pensaci molto bene prima di dire ad altri che non sanno quello che dicono!Originariamente inviato da salvio78
Ehi io in java non sono geniale ma in C non sbaglio un colpo e so bene che vuol dire nome e prototipo, se hai sollevato questa obiezione significa che se tu che non sai bene cosa dici.
Veniamo alla questione tecnica.Originariamente inviato da salvio78
La classe e la libreria dichiarano lo stesso metodo e lo stesso prototipo, quindi se c'è qualche problema non è là.
static {
System.loadLibrary("metodo.a");
}
perchè lo si mette in quella classe?
Io ho preso la tua classe (quella che hai messo nel primo post):
L'ho compilata ed ho ottenuto con javah l'header da includere.codice:public class Classe { public int classe; public native int metodo(int classe); static { System.loadLibrary("metodo.a"); } }
Il prototipo generato è:
JNIEXPORT jint JNICALL Java_Classe_metodo (JNIEnv *, jobject, jint);
Ti pare che sia uguale al tuo:
int metodo(int a);
????![]()
![]()
Quindi nel tuo programma C/C++ devi mettere:
All clear???codice:JNIEXPORT jint JNICALL Java_Classe_metodo (JNIEnv *env, jobject obj, jint value) { .... .... }

Rispondi quotando