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: Der schnellste Zug, der je gebaut wurde | Die komplette Physik 2024, November
Anonim

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üpfungsprozesses (normalerweise durch einen Linker ausgeführt) verweisen Bibliotheken und ausführbare Dateien aufeinander. Bibliotheksdateien werden in statische und dynamische Bibliotheken unterteilt, je nach dem Zeitpunkt, zu dem die Subroutinen in die Zielanwendung geladen werden. Dementsprechend sind LIB-Dateien statisch gelinkte Bibliotheken und DLL-Dateien dynamisch gelinkte Bibliotheken.

Was ist DLL?

Dynamic Link Library (besser bekannt als DLL) ist eine gemeinsam genutzte Bibliotheksimplementierung, die von Microsoft entwickelt wurde. Es verwendet die Erweiterungen.dll,.ocx oder.drv und sie werden in den Betriebssystemen Microsoft Windows und OS/2 verwendet..dll wird von den regulären DLL-Dateien verwendet. Und die Erweiterung.ocx wird von Bibliotheken verwendet, die ActiveX-Steuerelemente enth alten, und die Erweiterung.drv wird von älteren Systemtreiberdateien verwendet. Das DLL-Dateiformat ist dasselbe wie die Windows EXE-Dateien (Portable Executable-Dateien unter 32-Bit/64-Bit-Windows und New Executable unter 16-Bit-Windows). Daher können in DLL-Dateien (genau wie in EXE-Dateien) beliebige Kombinationen aus Code, Daten und Ressourcen enth alten sein. Tatsächlich werden Datendateien im 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 Abschnitte genannt werden, bilden eine DLL und jeder Abschnitt hat seine eigenen 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 seine eigene Kopie der Daten hat. Die primäre dynamische Bibliothek für Windows ist kernel32.dll, die die Basisfunktionen (datei- und speicherbezogene Funktionalität) 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 bekannt als statisch verknüpfte Bibliotheken). LIB-Dateien enth alten eine Sammlung von Unterprogrammen, externen Funktionen und Variablen. LIB-Dateien werden zur Kompilierzeit (im Gegensatz zur Laufzeit) aufgelöst. Der Code wird tatsächlich in die Zielanwendung kopiert. Ein Compiler, Linker oder Binder übernimmt diese Auflösung und erzeugt eine Objektdatei und eine ausführbare Datei. Dieser Vorgang wird als statischer Erstellungsprozess bezeichnet.

Was ist der Unterschied zwischen DLL und LIB?

LIB-Bibliotheken können während der Kompilierzeit aufgerufen werden, aber DLL-Bibliotheken können nur während der Laufzeit aufgerufen werden. LIB-Dateien sind erheblich größer als DLL-Dateien. Ein sehr häufiges Problem mit DLL-Dateien ist das Versionierungsproblem. Dies passiert, 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: