DLLとLIBの違い

Anonim

DLLとLIB

ライブラリは、アプリケーションの開発に使用できるリソースの集まりです。ライブラリは通常、サブルーチン、関数、クラス、値、型で構成されます。リンク処理中(通常はリンカによって行われます)、ライブラリと実行可能ファイルは互いに参照します。ライブラリファイルは、サブルーチンがターゲットアプリケーションにロードされる時間に応じて、静的ライブラリと動的ライブラリに分割されます。したがって、LIBファイルは静的にリンクされたライブラリであり、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ファイル、16ビット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ファイルよりも使いやすくなっています。

<! - > -

LIBとは何ですか?

LIBファイルは静的ライブラリ(静的リンクライブラリとも呼ばれます)です。 LIBファイルには、サブルーチン、外部関数、および変数のコレクションが含まれています。 LIBファイルはコンパイル時に(実行時とは対照的に)解決されます。コードは実際にターゲットアプリケーションにコピーされます。コンパイラ、リンカ、またはバインダがこの解決を行い、オブジェクトファイルと実行可能ファイルを生成します。このプロセスをスタティックビルドプロセスといいます。

DLLとLIBの違いは何ですか?

LIBライブラリはコンパイル時に呼び出すことができますが、DLLライブラリは実行時にのみ呼び出すことができます。LIBファイルはDLLファイルよりもはるかに大きくなります。 DLLファイルの非常に一般的な問題は、バージョン管理の問題です。これは、DLLのコードが変更され、アプリケーションが間違ったバージョンのDLLを使用している場合に発生します。これは、LIBファイルに関連する問題ではありません。再利用性の面では、新しいバージョンのシステムや完全に新しいアプリケーションを作成する場合、DLLは常にLIBより優れています。