次の方法で共有


DLL の利点

動的リンクには、以下の利点があります。

  • メモリを節約し、スワップ処理を抑制します。 メモリ内の 1 つの DLL を複数のプロセス間で共有することにより、複数のプロセスが 1 つの DLL を同時に使うことができます。 スタティック リンク ライブラリでビルドされたアプリケーションの場合は、Windows が各アプリケーション用のライブラリ コードをメモリに読み込む必要があります。

  • ディスク容量を節約します。 複数のアプリケーションが、ディスク上の DLL を共有できます。 スタティック リンク ライブラリでビルドされたアプリケーションの場合は、実行可能イメージにリンクされたライブラリ コードを別コピーとして持っています。

  • DLL のアップグレードが簡単です。 DLL 内の関数が変更されても、引数や戻り値が変わらない限り、その関数を利用するアプリケーションの再コンパイルや再リンクの必要はありません。 静的リンクのオブジェクト コードの場合は、関数が変更されると、アプリケーションをリンクし直す必要があります。

  • 出荷後のサポートが可能です。 たとえば、アプリケーションの出荷時には利用できなかったディスプレイをサポートするよう、ディスプレイ ドライバー DLL を後から変更することもできます。

  • 複数言語対応のプログラムをサポートします。 異なるプログラミング言語で書かれたプログラムでも、関数の呼び出し規約に従う限り、同じ DLL 関数を呼び出すことができます。 ただし、引数がスタックにプッシュされる順序、スタックのクリアをアプリケーションと関数のどちらが行うか、引数のレジスタ渡しの有無に関しては、使用する側のプログラムと DLL 関数の間に互換性が成立している必要があります。

  • MFC ライブラリ クラスを拡張する機構を提供します。 既存の MFC クラスの派生クラスを作成し、MFC アプリケーションから使用可能な MFC 拡張 DLL に配置できます。

  • アプリケーションの各国語バージョンの作成が簡単になります。 リソースを DLL に配置することによって、アプリケーションの各国語バージョンの作成は大幅に簡略可されます。 アプリケーションの各言語バージョンで使用する文字列を異なるリソース DLL に配置することによって、各言語バージョンがそれぞれに適切なリソースを読み込みます。

DLL を使った場合に逆に欠点となり得るのは、アプリケーションが単体では使えない点です。アプリケーションは、別個の DLL モジュールなしには動作しません。

目的に合ったトピックをクリックしてください

さらに詳しくは次のトピックをクリックしてください

参照

概念

Visual C++ の DLL