Unterschied Zwischen Assembly Und DLL

Unterschied Zwischen Assembly Und DLL
Unterschied Zwischen Assembly Und DLL

Video: Unterschied Zwischen Assembly Und DLL

Video: Unterschied Zwischen Assembly Und DLL
Video: C# beginners :- Assembly , EXE and DLL 2024, April
Anonim

Assembly vs DLL

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. DLL-Dateien sind die Bibliotheksdateien, die dynamisch verknüpft sind. DLL wurde von Microsoft entwickelt. Aufgrund einiger Probleme mit DLL-Dateien hat Microsoft das Assembly-Dateiformat (mit dem. NET-Framework) entwickelt. Assembly-Dateien sind DLLs physisch sehr ähnlich, weisen jedoch viele interne Unterschiede auf.

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 den 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 eine Versammlung?

Assembly-Dateien wurden von Microsoft eingeführt, um verschiedene Probleme mit DLL-Dateien zu lösen. Assembly-Dateien wurden mit dem Microsoft. NET-Framework eingeführt. Eine ausführbare logische Funktionseinheit wird als Assembly bezeichnet. Baugruppen können unter. NET CLR (Common Language Runtime) ausgeführt werden. Assemblys existieren physisch als EXE- oder DLL-Dateien. Sie unterscheiden sich jedoch intern stark von Microsoft Win32-DLLs. Eine Assembly-Datei besteht aus einem Manifest, Metadaten, MISL (Microsoft Intermediate Language Code) und anderen Ressourcen. Eine Versammlung beschreibt sich selbst. Das Manifest enthält Informationen wie Name, Version, Kultur, starker Name, Dateiliste, Typen und Abhängigkeiten. MISL-Code wird über CLR ausgeführt (kann nicht direkt ausgeführt werden).

Was ist der Unterschied zwischen Assembly und DLL?

DLL ist eine dynamisch verknüpfte Bibliothek. Obwohl Assemblys physisch DLLs entsprechen, sind sie intern sehr unterschiedlich. Es ist nicht möglich, die Konsistenz zwischen einer Reihe von DLLs aufrechtzuerhalten, aber die CLR kann die Konsistenz zwischen einer Reihe von Assemblys aufrechterhalten, da Assemblys sich selbst beschreiben (sie enthalten die Liste der Abhängigkeiten intern). Im Gegensatz zu DLLs werden Versionsinformationen für Assemblys (von der CLR) erzwungen. Bei Assemblys ist eine Side-by-Side-Bereitstellung (verschiedene Anwendungen mit unterschiedlichen Versionen) möglich.

Empfohlen: