Unterschied Zwischen DLL Und LIB

Unterschied Zwischen DLL Und LIB
Unterschied Zwischen DLL Und LIB

Video: Unterschied Zwischen DLL Und LIB

Video: Unterschied Zwischen DLL Und LIB
Video: Tutorial 0 - Understanding Header Files, Libraries and DLLs 2024, April
Anonim

DLL vs LIB

Eine Bibliothek ist eine Sammlung von Ressourcen, mit denen Anwendungen entwickelt werden können. Eine Bibliothek besteht normalerweise aus Unterprogrammen, Funktionen, Klassen, Werten und Typen. Während des Verknüpfungsprozesses (normalerweise von einem Linker ausgeführt) verweisen Bibliotheken und ausführbare Dateien aufeinander. Bibliotheksdateien werden abhängig vom Zeitpunkt, zu dem die Unterprogramme in die Zielanwendung geladen werden, in statische und dynamische Bibliotheken unterteilt. Dementsprechend sind LIB-Dateien statisch verknüpfte Bibliotheken und DLL-Dateien dynamisch verknüpfte Bibliotheken.

Was ist DLL?

Dynamic Link Library (besser bekannt als DLL) ist eine von Microsoft entwickelte Implementierung einer gemeinsam genutzten Bibliothek. Es verwendet die Erweiterungen.dll,.ocx oder.drv und sie werden in Microsoft Windows- und OS / 2-Betriebssystemen verwendet..dll wird von den regulären DLL-Dateien verwendet. Die Erweiterung.ocx wird von Bibliotheken verwendet, die ActiveX-Steuerelemente enthalten, und die Erweiterung.drv wird von älteren Systemtreiberdateien verwendet. Das DLL-Dateiformat entspricht den Windows EXE-Dateien (Portable Executable-Dateien unter 32-Bit / 64-Bit-Windows und New Executable unter 16-Bit-Windows). Daher kann jede Kombination von Code, Daten und Ressourcen in DLL-Dateien enthalten sein (genau wie in EXE-Dateien). Tatsächlich werden Datendateien mit dem DLL-Dateiformat als Ressourcen-DLLs bezeichnet. Symbolbibliotheken (mit der Erweiterung.icl) und Schriftdateien (mit den Erweiterungen.fon und.fot) sind Beispiele für Ressourcen-DLLs.

Komponenten, die als Abschnitte bezeichnet werden, bilden eine DLL, und jeder Abschnitt verfügt über eigene Attribute wie schreibgeschützt / beschreibbar und ausführbar / nicht ausführbar. Codeabschnitte sind ausführbar, während Datenabschnitte nicht ausführbar sind. Die Codeabschnitte werden gemeinsam genutzt und die Datenabschnitte sind privat. Das bedeutet, dass alle Prozesse, die die DLL verwenden, dieselbe Kopie des Codes verwenden, während jeder Prozess eine eigene Kopie der Daten hat. Die primäre dynamische Bibliothek für Windows ist kernel32.dll, die die Basisfunktionen (datei- und speicherbezogene Funktionen) unter Windows enthält. COM (Component Object Model) ist die Erweiterung der DLL zu OOP (Object Oriented Programming). Herkömmliche DLLs sind einfacher zu verwenden als COM-Dateien.

Was ist LIB?

LIB-Dateien sind statische Bibliotheken (auch als statisch verknüpfte Bibliotheken bezeichnet). LIB-Dateien enthalten eine Sammlung von Unterprogrammen, externen Funktionen und Variablen. LIB-Dateien werden zur Kompilierungszeit aufgelöst (im Gegensatz zur Laufzeit). Der Code wird tatsächlich in die Zielanwendung kopiert. Ein Compiler, Linker oder Binder führt diese Auflösung durch und erstellt eine Objektdatei und eine ausführbare Datei. Dieser Prozess wird als statischer Erstellungsprozess bezeichnet.

Was ist der Unterschied zwischen DLL und LIB?

LIB-Bibliotheken können während der Kompilierungszeit aufgerufen werden, DLL-Bibliotheken können jedoch nur zur Laufzeit aufgerufen werden. LIB-Dateien sind erheblich größer als DLL-Dateien. Ein sehr häufiges Problem bei DLL-Dateien ist das Versionsproblem. Dies geschieht, wenn der Code der DLL geändert wird und die Anwendung eine falsche Version einer DLL verwendet. Dies ist kein Problem im Zusammenhang mit LIB-Dateien. In Bezug auf die Wiederverwendbarkeit sind DLLs beim Schreiben neuer Systemversionen oder völlig neuer Anwendungen immer besser als LIBs.

Empfohlen: