DLLs einbinden in C++
-
Hallo zusammen!
Ich hab mir Dev-C++ runtergeladen (mit MinGW und wxWidgets) und möchte nun eine DLL einbinden. Leider habe ich nur die DLL und keine *.LIB, konnte aber mit impdef (vom Borland-Builder) eine *.DEF erzeugen und dann mit dlltool (von Dev-C++) eine *.a ... das soll ja sowas ähnliches wie eine *.LIB sein. Lieg ich da richtig. Irgendwo hab ich aber gelesen, dass *.a für Unix-Systeme sei. Ich arbeite aber unter Windows (XP SP2). Wie binde ich nun die DLL und ihre Funktionen in meinen Code ein?
Für die Funktionen hatte ich sowas gefunden:
int __declspec(dllimport) __stdcall DoGetRS232Baud(int *BaudRate);
Da fehlt aber natürlich die Referenz. Wie im Manual beschrieben mit
extern "C" { #define AVR309DLL "AVR309.dll"; int __declspec(dllimport) __stdcall DoGetRS232Baud(int *BaudRate); }
klappt leider nicht. War mir eh etwas suspekt, weil da ja irgendwie nicht wirklich was geladen wird von der DLL, nur n define ... Irgendwo hab ich ja was von USELIB gelesen, aber den Befehl kennt Dev-C++ bzw MinGW scheinbar nicht. Bin also total verzweifelt. Kann mir jemand helfen. Würd schon gern ne statische Einbindung haben!
Danke schon mal.
see4far
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Compiler-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Sehe ich das richtig, Dass Du den Borland-Compiler verwendest? Dann wird das mit der .a schwierig. Der gcc (MingW/Dev-C++) kann .a-Dateien linken, der Borland, soweit ich weiß, nicht. Man kann das auch irgendwie ineinander umwandeln, ich weiß aber leider nicht mehr genau, wie, aber bemüh mal die Suche, ich habe die Frage vor nicht allzu langer Zeit selber gestellt.
Was Du aber auf jeden fall machen kannst, ist run-time linking. Schau Dir mal LoadLibrary(...) und GetProcAddress(...) an. Hier noch ein Link:
http://smorgasbordet.com/phpBB2/viewtopic.php?t=636
Gruß,
Sebastian
-
Hargh, wer lesen kann ist klar im Vorteil, Du verwendest ja DevC++. Kein Problem also. einfach die .a-Datei dazulinken.
Gute nacht, ich sollte jetzt ins Bett,
Sebastian