T
tom21
Gast
Hallo Leute,
Ich arbeite gerade an einem Java- Projekt. Dort muss ich auf eine Hardwarekomponente zugreifen. Ich möchte das über JNI tun.
Für den Zugriff auf die Hardware wurden folgende Dateien bereitgestellt.
testAPI.h und testAPI.lib und einige .dll Dateien die in der testAPI.lib gebraucht werden.
In der testAPI.h sind die Funktionen aufgelistet die ich von Java aus aufrufen möchte.
Meine Frage:
Ich habe zb. eine klasse
Bei der JNI Headergenerierung erzeugt er folgenden Funktionskopf.
Was ich nicht verstehe ist:
Ich habe doch schon eine Header Klasse die testAPI.h. dort sind die Funktionen schon aufgelistet die ich brauche.
Muss ich jetzt die Funktion
implementieren und dann von dort aus, meine originale Funktionen von der testAPI.h aufrufen??????
zb.
Habe ich das richtig verstanden??? Wäre nett wenn mir jemand das erklären könnte. Die Tutorials haben mit leider nicht geholfen.
Ich arbeite gerade an einem Java- Projekt. Dort muss ich auf eine Hardwarekomponente zugreifen. Ich möchte das über JNI tun.
Für den Zugriff auf die Hardware wurden folgende Dateien bereitgestellt.
testAPI.h und testAPI.lib und einige .dll Dateien die in der testAPI.lib gebraucht werden.
In der testAPI.h sind die Funktionen aufgelistet die ich von Java aus aufrufen möchte.
Meine Frage:
Ich habe zb. eine klasse
Code:
public class JniTest {
public static native int readPort();
}
Bei der JNI Headergenerierung erzeugt er folgenden Funktionskopf.
Code:
JNIEXPORT jint JNICALL Java_JniTest_readPort (JNIEnv *, jclass);
Was ich nicht verstehe ist:
Ich habe doch schon eine Header Klasse die testAPI.h. dort sind die Funktionen schon aufgelistet die ich brauche.
Muss ich jetzt die Funktion
Code:
JNIEXPORT jint JNICALL Java_JniTest_readPort (JNIEnv *, jclass);
zb.
Code:
JNIEXPORT jint JNICALL Java_JniTest_getNumber (JNIEnv * pEnv, jclass clazz)
{
return readPort(); // Die Funktion aus der testAPI.h
}
Habe ich das richtig verstanden??? Wäre nett wenn mir jemand das erklären könnte. Die Tutorials haben mit leider nicht geholfen.