アセンブリとDLLの違い

Anonim

アセンブリ対DLL

で構成されます。ライブラリは、アプリケーションの開発に使用できるリソースの集まりです。ライブラリは通常、サブルーチン、関数、クラス、値、型で構成されます。リンク処理中(通常はリンカによって行われます)、ライブラリと実行可能ファイルは互いに参照します。 DLLファイルは、動的にリンクされたライブラリファイルです。 DLLはMicrosoftによって開発されました。しかし、DLLファイルに存在するいくつかの問題のために、Microsoftはアセンブリファイル形式(.NETフレームワーク)を思いついた。アセンブリファイルは物理的にDLLと非常によく似ていますが、多くの内部的な違いがあります。

<! --1 - >

DLLとは何ですか?

ダイナミックリンクライブラリ(DLLとも呼ばれる)は、マイクロソフトが開発した共有ライブラリの実装です。それは。 dll、。 ocxまたは。 drv拡張子は、Microsoft WindowsおよびOS / 2オペレーティングシステムで使用されます… dllは、通常のDLLファイルで使用されます。そして。 ocx拡張子は、ActiveXコントロールとActiveXコントロールを含むライブラリで使用されます。 drv拡張子は、従来のシステムドライバファイルで使用されます。 DLLファイルの形式は、Windows EXEファイル(32ビット/ 64ビットWindowsではPortable Executableファイル、16bit WindowsではNew Executable)と同じです。したがって、EXEファイルと同様に、コード、データ、リソースの任意の組み合わせをDLLファイルに含めることができます。事実、DLLファイル形式のデータファイルはリソースDLLと呼ばれます。アイコンライブラリ(icl拡張子付き)およびフォントファイル(.fonおよび.fot拡張子付き)は、リソースDLLの例です。

<!セクションと呼ばれるコンポーネントがDLLを構成し、各セクションには読み取り専用/書き込み可能、​​実行可能/実行不可などの独自の属性があります。コードセクションは実行可能ですが、データセクションは実行可能ではありません。コードセクションは共有され、データセクションはプライベートです。つまり、DLLを使用するすべてのプロセスは同じコードのコピーを使用し、各プロセスは独自のデータのコピーを持ちます。 Windows用の主要な動的ライブラリはkernel32です。 dllは、Windows上の基本機能(ファイルとメモリに関連する機能)を含んでいます。 COM(Component Object Model)は、DLLをOOP(オブジェクト指向プログラミング)に拡張したものです。従来のDLLは、COMファイルよりも使いやすくなっています。

<! - > -

アセンブリとは何ですか?

アセンブリファイルは、DLLファイルに存在するいくつかの問題を解決するためにMicrosoftによって導入されました。アセンブリファイルはMicrosoftと共に導入されました。ネットフレームワーク。実行可能な論理単位の機能をアセンブリと呼びます。アセンブリは下で実行可能です。 NET CLR(共通言語ランタイム)。物理的には、アセンブリはEXEまたはDLLファイルとして存在します。しかし、内部的にはMicrosoft Win32 DLLとは非常に異なっています。アセンブリファイルは、マニフェスト、メタデータ、MISL(Microsoft Intermediate Language)コードなどのリソースで構成されています。アセンブリは自己記述型です。マニフェストには、名前、バージョン、カルチャ、強力な名前、ファイルリスト、タイプおよび依存関係などの情報が含まれています。 MISLコードはCLRで実行されます(直接実行することはできません)。

アセンブリとDLLの違いは何ですか?

DLLは動的にリンクされたライブラリです。アセンブリは物理的にはDLLと同等ですが、内部的には非常に異なります。一連のDLL間で整合性を維持することはできませんが、CLRはアセンブリが自己記述型であるため(内部的に依存関係のリストが含まれているため)、アセンブリの整合性を維持できます。 DLLとは異なり、(CLRによって)アセンブリのバージョン情報が適用されます。アセンブリでは、サイドバイサイド展開(異なるバージョンを使用する異なるアプリケーション)が可能です。