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: Sie sind überall! Aber warum? - DLL-Dateien einfach erklärt! 2024, November
Anonim

Assembly vs. DLL

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. DLL-Dateien sind die Bibliotheksdateien, die dynamisch verknüpft werden. DLL wurde von Microsoft entwickelt. Aufgrund einiger Probleme mit DLL-Dateien entwickelte Microsoft jedoch das Assembly-Dateiformat (mit dem. NET-Framework). 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 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 den 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 eine Versammlung?

Assembly-Dateien wurden von Microsoft eingeführt, um mehrere 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. Assemblies sind unter. NET CLR (Common Language Runtime) ausführbar. Physikalisch liegen Assemblys als EXE- oder DLL-Dateien vor. Sie unterscheiden sich jedoch intern stark von Microsoft Win32-DLLs. Eine Assemblydatei besteht aus einem Manifest, Metadaten, MISL (Microsoft Intermediate Language Code) und anderen Ressourcen. Eine Assembly ist selbstbeschreibend. Das Manifest enthält Informationen wie Name, Version, Kultur, starker Name, Dateiliste, Typen und Abhängigkeiten. MISL-Code wird über CLR ausgeführt (er 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 gleich sind, sind sie intern sehr unterschiedlich. Es ist nicht möglich, die Konsistenz zwischen einem Satz von DLLs aufrechtzuerh alten, aber die CLR kann die Konsistenz zwischen einem Satz von Assemblys aufrechterh alten, da Assemblys selbstbeschreibend sind (sie enth alten intern die Liste der Abhängigkeiten). Anders als bei DLLs werden Versionsinformationen für Assemblys (durch die CLR) erzwungen. Mit Assemblys ist eine parallele Bereitstellung (verschiedene Anwendungen mit unterschiedlichen Versionen) möglich.

Empfohlen: