Unterschied zwischen DLL und LIB

DLL vs. LIB

Eine Bibliothek ist eine Sammlung von Ressourcen, die zum Entwickeln von Anwendungen verwendet werden können. Eine Bibliothek besteht normalerweise aus Unterprogrammen, Funktionen, Klassen, Werten und Typen. Während des Verknüpfungsvorgangs (normalerweise durch einen Linker) verweisen Bibliotheken und ausführbare Dateien auf einander. Bibliotheksdateien sind in statische und dynamische Bibliotheken unterteilt, abhängig von der Zeit, zu der die Unterprogramme in die Zielanwendung geladen werden. Dementsprechend sind LIB-Dateien statisch verknüpfte Bibliotheken und DLL-Dateien dynamisch verknüpfte Bibliotheken.

Was ist DLL??

Dynamic Link Library (allgemein als DLL bezeichnet) ist eine von Microsoft entwickelte Implementierung der gemeinsam genutzten Bibliothek. Es verwendet die Erweiterungen .dll, .ocx oder .drv. 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 ist identisch mit den Windows-EXE-Dateien (Portable Executable-Dateien unter 32-Bit / 64-Bit-Windows und New Executable unter 16-Bit-Windows). Daher können beliebige Kombinationen von Code, Daten und Ressourcen in DLL-Dateien enthalten sein (genau wie in EXE-Dateien). Datendateien mit dem DLL-Dateiformat werden als Ressourcen-DLLs bezeichnet. Symbolbibliotheken (mit der Erweiterung .icl) und Schriftartendateien (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 sind freigegeben und Datenabschnitte sind privat. Das bedeutet, dass alle Prozesse, die die DLL verwenden, dieselbe Kopie des Codes verwenden, während jeder Prozess über eine eigene Kopie der Daten verfügt. Die primäre dynamische Bibliothek für Windows ist kernel32.dll, die die Basisfunktionen (Datei- und Speicherfunktionen) unter Windows enthält. COM (Component Object Model) ist die Erweiterung von 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 ein Binder führt diese Auflösung aus und erzeugt eine Objektdatei und eine ausführbare Datei. Dieser Prozess wird als statischer Build-Prozess 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 mit DLL-Dateien ist das Problem der Versionierung. Dies geschieht, wenn der Code der DLL geändert wird und die Anwendung eine falsche Version einer DLL verwendet. Dies ist kein Problem bei LIB-Dateien. In Bezug auf die Wiederverwendbarkeit sind DLLs beim Schreiben neuer Systemversionen oder völlig neuer Anwendungen immer besser als LIBs.