DLL einbinden?

chriss_2oo4

Erfahrenes Mitglied
Hi,

hab schon wieder eine Frage :( Hab auch schon die Suche benutzt, komm aber nicht ganz klar.

Ich hab mich den ganzen Vormittag damit beschäftigt, wie ich eine dll sinnvoll in mein VS2005 - C++ -Projekt einbinde.

Ich hab gelesen, dass man die zugehörige .lib-Datei und .h-Datei einbinden kann und somit die Funktionen aus der DLL mit dllimport nutzen kann -> aber wo binde ich die beiden genannten Dateien ein -> englisches VS2005

Wenn ich diese Dateien einbinde, werden diese dann in meine dll, die ich erzeuge eingebunden oder müssen die beim Benutzer auch immer zusätzlich die .h und .lib auf ihrem rechner haben?

Des Weiteren gibt es die Möglichkeit eine DLL zur Laufzeit in die Anwendung einzubinden, ist aber doch nicht sonderlich effektiv wenn ich an verschiedenen Stellen in meinem Projekt immer wieder die gleiche DLL einbinden muss?


Lg Chriss
 
Hi

1: Schreib im Quelltext einfach:
#include<asd.h>
#pragma comment(linker,"asd.lib")

asd muss halt der Name der DLL sein, ausserdem sollten
dll,lib und h im Gleichen Verzeichnis sein.

Die lib-Datei bekommst du beim Kompilieren der DLL gleich dazu,
die h-Datei musst du normalerweise selber schreiben,
die enthält die Prototypen(Signaturen) von allen DLL-Funktionen.

Wenn in der DLL also eine funktion
int funk(char a); ist,
dann schreibst du in die H-Datei:
__declspec(dllimport) extern "C" int funk(char);
immer mit diesem declspec etc am Anfang.
Zur Erinnerung: Alle Funktionen in der DLL die du verwenden willst,
müssen
__declspec(dllexport)
vorne haben

Der Benutzer des Programms braucht beim Ausführen nur die DLL, lib und h sind dann überflüssig

Laufzeit einbinden:
Es ist möglich, wenn du Die Prototypen der Funktionen schon vorher weisst.
Und du musst die DLL eigentlich nur einmal laden/entladen.

googel nach LoadLibrary

gruß
 

Neue Beiträge

Zurück