DLL は、プログラムが特別なタスクを実行するために必要なコードやその他のリソースを共有できるようにする実行可能ファイルであるダイナミック リンク ライブラリを指します。 Windows では、多くのアプリケーションは完全な実行可能ファイルではなく、比較的独立したいくつかのダイナミック リンク ライブラリ (DLL ファイル) に分割され、システム内に配置されます。 1 つのアプリケーションに複数の DLL ファイルを含めることができ、1 つの DLL ファイルを複数のアプリケーションで共有することができます。このような DLL ファイルは共有 DLL ファイルと呼ばれます。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
DLL は、Dynamic Link Library の略で、ダイナミック リンク ライブラリを意味します。アプリケーション拡張とも呼ばれ、プログラムが特別なタスクを実行するために必要なコードを共有できるようにする実行可能ファイルです。他のリソース。
Windows では、多くのアプリケーションは完全な実行可能ファイルではなく、比較的独立したいくつかのダイナミック リンク ライブラリ、つまり DLL ファイルに分割され、システムに配置されます。プログラムを実行すると、対応する DLL ファイルが呼び出されます。 1 つのアプリケーションに複数の DLL ファイルを含めることができ、1 つの DLL ファイルを複数のアプリケーションで共有することができます。このような DLL ファイルは共有 DLL ファイルと呼ばれます。
#DLL ファイルを使用すると、プログラムは特別なタスクを実行するために必要なコードやその他のリソースを共有できます。大きなアプリケーションは多くのモジュールで構成されており、これらのモジュールは比較的独立した機能を実行し、相互に連携してソフトウェア システム全体の作業を完了します。機能がより一般的で、他のソフトウェア システムを構築するときに引き続き使用されるモジュールがいくつかある場合があります。ソフトウェア システムを構築する場合、すべてのモジュールのソース コードがアプリケーション EXE ファイル全体に静的にコンパイルされると、いくつかの問題が発生します。欠点の 1 つは、アプリケーションのサイズが増大し、より多くのディスク領域を占有し、プログラムが実行されることです。また、大量のメモリ空間を消費し、システム リソースの浪費を引き起こします。もう 1 つの欠点は、大規模な EXE プログラムを作成する場合、変更および再構築されるたびにすべてのソース コードを調整してコンパイルする必要があり、その結果、プログラムの複雑さが増大することです。コンパイル プロセスも、段階的な単体テストには役に立ちません。
Windows システム プラットフォームは、まったく異なる、より効果的なプログラミングおよび実行環境を提供します。独立したプログラム モジュールを小さな DLL ファイルとして作成し、個別にコンパイルおよびテストできます。実行時に、システムは、EXE プログラムが実際に DLL モジュールを呼び出したい場合にのみ、これらの DLL モジュールをメモリ空間にロードします。このアプローチにより、EXE ファイルのサイズと必要なメモリ容量が削減されるだけでなく、これらの DLL モジュールを複数のアプリケーションで同時に使用できるようになります。 Windows 自体は、いくつかの主要なシステム機能を DLL モジュールの形式で実装しています。
一般的に、DLL はディスク ファイルです。.dll、.DRV、.FON、.SYS および多くの .EXE 拡張子を持つシステム ファイルも DLL になる可能性があります。これはグローバル データ、サービス関数、およびリソースで構成され、実行時にシステムによって呼び出しプロセスの仮想空間にロードされ、呼び出しプロセスの一部になります。他の DLL と競合がない場合、ファイルは通常、プロセスの仮想空間内の同じアドレスにマップされます。 DLL モジュールには、外部にサービスを提供するためのさまざまなエクスポート関数が含まれています。 DLL は独自のデータ セグメントを持つことができますが、独自のスタックを持たず、それを呼び出すアプリケーションと同じスタック モードを使用します。DLL はメモリ内にインスタンスを 1 つだけ持ちます。DLL はコードのカプセル化を実装します。 DLL は特定のプログラミング言語に関連しており、コンパイラとは何の関係もありません。
Win32 環境では、各プロセスが独自の読み取り/書き込みグローバル変数をコピーします。他のプロセスとメモリを共有したい場合は、メモリ マップト ファイルを使用するか、共有データ セグメントを宣言する必要があります。 DLL モジュールに必要なスタック メモリは、実行中のプロセスのスタックから割り当てられます。 Windows は、DLL モジュールを読み込むときに、プロセス関数呼び出しを DLL ファイルのエクスポートされた関数と照合します。 DLL に対する Windows オペレーティング システムの操作は、DLL をそれを必要とするプロセスの仮想アドレス空間にマップすることだけです。 DLL 関数内のコードによって作成されたオブジェクト (変数を含む) は、それを呼び出すスレッドまたはプロセスによって所有されます。
DLL の利点
プログラムが DLL を使用すると、次の利点があります: 使用するリソースが少なくなる: 複数のプログラムが同じ関数ライブラリを使用する場合、DLL はディスクおよび物理メモリにロードされるコードの重複の量を減らすことができます。これは、フォアグラウンドで実行されているプログラムだけでなく、Windows オペレーティング システム上で実行されている他のプログラムにも大きな影響を与える可能性があります。モジュラー アーキテクチャ DLL の推進は、モジュラー プログラムの開発の促進に役立ちます。これは、複数の言語バージョンを必要とする大規模なプログラムや、モジュール型アーキテクチャを必要とするプログラムの開発に役立ちます。モジュール型プログラムの例としては、実行時に動的にロードできる複数のモジュールを備えた会計プログラムがあります。展開とインストールの簡略化 DLL 内の関数を更新または修復する必要がある場合、DLL の展開とインストールでは、DLL へのプログラムのリンクを再確立する必要はありません。さらに、複数のプログラムが同じ DLL を使用している場合、複数のプログラムが更新または修正の恩恵を受けることができます。この問題は、定期的に更新または修正されるサードパーティの DLL を使用する場合に、より頻繁に発生する可能性があります。
関連知識の詳細については、FAQ 列をご覧ください。
以上がdllファイルとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。