JNI Interface DLL erstellen

xonauga

Grünschnabel
Hallo,

ich habe Probleme beim Erstellen einer Interface-DLL, d.h. eine C-DLL die wiederum eine weitere C-DLL aufruft.
Beim Kompilieren bzw. Linken fällt der MINGW-Compiler auf die Nase und kann die importierte C-Funktion der 2ten C-DLL nicht finden.

Der Fehler lautet: undefined Reference to '_imp__namederfunktion'

Übrigens: Die Schnittstelle zwischen JAVA und C über JNI funktioniert bestens, bis die andere DLL-Funktion in den Code integriert wird.

Kann mir einer helfen, bzw. sagen wie der richtige Compileraufruf mit sämtlichen Schaltern lautet? Irgendwelche JNI bzw- C-Experten anwesend?

Schöne
Grüße
Gunnar
 
Hi,

wenn der Fehler in dem Nativen Bereich beim aufruf der nichtJNI DLL passiert, ist es wahrscheinlich ein fehler im C Code, und dann wirst du den besten Support im C Forum finden.

Am sonsten Fehlt der Quellcode um die Sache beurteilen zu können.
Code:
undefined Reference to '_imp__namederfunktion'
Ist das die Ganze Fehlermeldung? Wenn ja sieht das nicht nach Java aus.

MfG

Der Andibert

P.S.: ich tippe auf fehlende header Imports oder so
 
danke für die antwort. ich habe mittlerweile den fehler gefunden. der aufruf zum kompilieren war falsch bzw. ungenügend. durch diesen ganzen parameterdschungel muss man erstmal durchfinden. ich wusste nicht, dass man den lib include ganz am ende des gcc befehls hängt. zumindest dann hat es dann auch mit der nested dll geklappt. die faq von mingw hat mich auch weiter gebracht.

vielen dank für die mühe.

gruß
gunnar
 
Du kannst dir zu dem Thema sonst auch mal JNA angucken. Dann musst du keinen C-Code mehr schreiben um auf DLLs zuzugreifen.
 
Funktionen aus C-Code über JNI aufrufen

Hallo,
vielleicht hast Du mittlerweile die Antworten an Deine Fragen gefunden. Dann kannst mir auch beí meinen Fragen, wenn es geht helfen. Mein Name unter dem Forum ist Zonbléou. Den C-Code habe ich nicht. Ich habe plus die DLLs von C, die Header Dateien zu den DLLs von C, Ich habe meine Java Klasse geschrieben, Meine C-Wrapper Datei geschrieben, mein JNI-DLL erzeugt. Meine C-DLs und Header sind schon unter eclipse eingebunden. Aber der Zugriff auf die Header gibt immer eine Fehlermeldung. Ich habe auch aus C-DLLs ein paar libs generiert (.a Dateien, ob das richtige Format? ). Ich versuche die Methoden aus C-DLLs in meine C-Wrapper aufzurufen und das geht nicht. Da weiss ich nicht mehr wie weitergehen?
Wäre schön, wenn Du mir dabei helfen kannst oder jemanden kennst der mir bei dem Thema helfen kann?
viele Grüße.
Zonbléou
 

Neue Beiträge

Zurück