wofür .lib Dateien

Warum braucht man eigentlich wenn man eine .dll verwenden will eine .lib dazu um die im Visual C++ zu verwenden? Man spricht doch dann im programm die .dll an und wie die Funktionen heissen weiss man auch (bzw. hat ein Headerfile). Wofür is diese .lib nötig?

Warum braucht man eigentlich wenn man eine .dll verwenden will
eine .lib dazu um die im Visual C++ zu verwenden? Man spricht
doch dann im programm die .dll an und wie die Funktionen
heissen weiss man auch (bzw. hat ein Headerfile). Wofür is
diese .lib nötig?

hallo Bruno

Die lib-Datei ist nur bedingt wichtig.

Es gibt zwei Varianten eine DLL zu deinem Programm zu linken. Beide haben gemeinsam, das die zur Laufzeit und nicht zur Kompilierzeit gelinkt werden. Also auch beliebig ausgetauscht werden können.

Der Unterschied ist eine Andere Sache. Besitzt du zu einer DLL die passende .lib-Datei kannst du diese in dein Projekt einbinden wie eine Statische Bibliothek. In der Lib stehen aber nur die Funktionsprototypen. Der Programmcode steht in der DLL. Der Vorteil daran ist, das du dich nicht darum kümmern mußt das deine DLL an der richtigen Stelle geladen wird. Das macht dann das Betriebssystem beim Programmstart. Sollte die DLL fehlen kommen dann immer solchen netten Fehlermeldungen wie etwa „Die DLL xvz.dll konnte nicht im Suchpfad gefunden.“

Die Andere Variante ist wahrscheinlich die, die du benutzt. In dem du selber in deinem Quelltext dafür sorgst, dass die DLL geladen wird, du auf die Funktionen in der DLL aufrufst und dann die DLL selber wieder aus dem Speicher entfernst. Bei dieser Variante muß zur Kompilierzeit der Name der DLL nicht bekannt sein. Bei der ersten schon.

Vielleicht hilft das etwas. Ich hab irgendwo noch die genaue Beschreibung rumfliegen. Die hab ich aber auf die schnelle nicht gefunden.

Gruss
Jens

Ok danke…
die Variante mit der .lib war mir bisher eher bekannt und ist auch komfortabler irgendwie…