T
tuxedo
Gast
Hi,
ich muss einen Wrapper für eine Treiber-DLL schreiben um den Treiber mit Java nutzen zu können:
Im Detail heisst das:
Ich habe eine Java-Klasse die eine .DLL lädt die wiederum auf die Treiber-DLL zugreift. Die Methodenaufrufe werden einfach "durchgereicht": In Java rufe ich die native Methode "halloworld" auf, in der Wrapper-DLL wird dann die entsprechende "helloWorld" Methode aus der Treiber DLL aufgerufen und der Return-Wert an Java zurückgeleitet.
Mein Problem ist jetzt folgendes:
Die Treiber-DLL hat Funktionen deren Parameter nicht einfach nur int's und char's sind sondern teilweise als STRUCT zusammengefasste Variablen.
Da ich mehr Ahung von Java als von C habe stehe ich jetzt vor dem Problem dass ich nicht 100%ig weiß wie ich in meinem C-Wrapper diesen durch STRUCT definierten Parameter in Java und in C umsetze.
Ein STRUCT sieht für mich aus wie ein Java-Objekt das einfach nur ein paar Instanzvariablen hält. Ich habe mir nun dieses STRUCT-Gedöns als eigene Java-Klasse nachgebildet in in meiner native-Methodendefinition als Parameter der Methode benutzt.
Jetzt müsste ich in C dieses Objekt verwenden und dessen Variablen auslesen, diese in das passende STRUCT stecken und die entsprechende Methode in der Treiber-DLL damit aufrufen.
Und genau das ist der Punkt wo ich nicht weiter komme.
ich habe breits das JNI-Tutorial von SUN durchgestöbert aber nur ewig viele komplexe Sachen entdeckt. Gibts da nicht eine Einfache Art und Weise wie ich das STRUCT in Java nachbilde und dieses Nachgebildete Ding in C benutze um meine Methode in der Treiber-DLL damit zu füttern ?
Hoffe ich habs einigermaßen verständlich erklärt.
Gruss
Ale
ich muss einen Wrapper für eine Treiber-DLL schreiben um den Treiber mit Java nutzen zu können:
Im Detail heisst das:
Ich habe eine Java-Klasse die eine .DLL lädt die wiederum auf die Treiber-DLL zugreift. Die Methodenaufrufe werden einfach "durchgereicht": In Java rufe ich die native Methode "halloworld" auf, in der Wrapper-DLL wird dann die entsprechende "helloWorld" Methode aus der Treiber DLL aufgerufen und der Return-Wert an Java zurückgeleitet.
Mein Problem ist jetzt folgendes:
Die Treiber-DLL hat Funktionen deren Parameter nicht einfach nur int's und char's sind sondern teilweise als STRUCT zusammengefasste Variablen.
Da ich mehr Ahung von Java als von C habe stehe ich jetzt vor dem Problem dass ich nicht 100%ig weiß wie ich in meinem C-Wrapper diesen durch STRUCT definierten Parameter in Java und in C umsetze.
Ein STRUCT sieht für mich aus wie ein Java-Objekt das einfach nur ein paar Instanzvariablen hält. Ich habe mir nun dieses STRUCT-Gedöns als eigene Java-Klasse nachgebildet in in meiner native-Methodendefinition als Parameter der Methode benutzt.
Jetzt müsste ich in C dieses Objekt verwenden und dessen Variablen auslesen, diese in das passende STRUCT stecken und die entsprechende Methode in der Treiber-DLL damit aufrufen.
Und genau das ist der Punkt wo ich nicht weiter komme.
ich habe breits das JNI-Tutorial von SUN durchgestöbert aber nur ewig viele komplexe Sachen entdeckt. Gibts da nicht eine Einfache Art und Weise wie ich das STRUCT in Java nachbilde und dieses Nachgebildete Ding in C benutze um meine Methode in der Treiber-DLL damit zu füttern ?
Hoffe ich habs einigermaßen verständlich erklärt.
Gruss
Ale