Unterschied zwischen DLL und LIB

Anonim

DLL vs LIB

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

Was ist DLL?

Dynamic Link Library (besser bekannt als DLL) ist eine Shared Library-Implementierung, die von Microsoft entwickelt wurde. Es verwendet das. DLL,. ocx oder. drv extensions und sie werden in Microsoft Windows und OS / 2 Betriebssysteme verwendet … DLL wird von den regulären DLL-Dateien verwendet. Und. Die Ocx-Erweiterung wird von Bibliotheken verwendet, die ActiveX-Steuerelemente enthalten. Die Erweiterung drv wird von älteren Systemtreiberdateien verwendet. Das DLL-Dateiformat ist identisch mit den Windows EXE-Dateien (Portable Executable-Dateien auf 32-Bit / 64-Bit-Windows und New Executable auf 16-Bit-Windows). Daher kann jede Kombination aus Code, Daten und Ressourcen in DLL-Dateien enthalten sein (genau wie in EXE-Dateien). Tatsachlich werden Datendateien mit dem DLL-Dateiformat als Ressourcen-DLLs bezeichnet. Icon-Bibliotheken (mit. Icl-Erweiterung) und Font-Dateien (mit.fon- und.ext-Erweiterungen) sind Beispiele für Ressourcen-DLLs.

Die als Abschnitte bezeichneten Komponenten bilden eine DLL, und jeder Abschnitt hat seine eigenen Attribute wie schreibgeschützt / ausführbar / nicht ausführbar. Codeabschnitte sind ausführbar, während Datenabschnitte nicht ausführbar sind. Die Codeabschnitte sind freigegeben 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 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 als statisch verknüpfte Bibliotheken bekannt). LIB-Dateien enthalten eine Sammlung von Unterroutinen, externen Funktionen und Variablen. LIB-Dateien werden zur Kompilierungszeit (im Gegensatz zur Laufzeit) aufgelöst. Der Code wird tatsächlich in die Zielanwendung kopiert. Ein Compiler, Linker oder ein Binder wird diese Auflösung ausführen und eine Objektdatei und eine ausführbare Datei erzeugen. Dieser Prozess wird statischer Build-Prozess genannt.

Was ist der Unterschied zwischen DLL und LIB?

LIB-Bibliotheken können während der Kompilierungszeit aufgerufen werden, DLL-Bibliotheken können jedoch 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 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, beim Schreiben neuer Versionen von Systemen oder völlig neuen Anwendungen sind DLLs immer besser als LIBs.