Visual C++ アプリケーションの依存関係の理解

更新 : 2007 年 11 月

アプリケーションが依存している Visual C++ ライブラリを確認する 1 つの方法は、プロジェクトの [プロパティ ページ] ダイアログ ボックスにある [全般] タブを調べることです。この方法を使用すると、たとえば、プロジェクトで MFC および ATL ライブラリを使用していることがわかります。[共有 DLL で MFC を使う] を選択すると、実行時のアプリケーションは mfc90.dll などの MFC DLL に依存します。アプリケーションで MFC や ATL を使用していない場合でも、[構成プロパティ] の C/C++ ブランチにある [コード生成] タブで [ランタイム ライブラリ] に対して [マルチスレッド デバッグ DLL (/MDd)] を選択していると、アプリケーションは CRT ライブラリに依存している可能性があります。

アプリケーションが依存する DLL を確認する最も適用範囲の広い方法は、Visual C++ に付属の Dependency Walker (depends.exe) を使用してアプリケーションを開くことです。Depends.exe は、\Microsoft Visual Studio 2005\Common7\Tools\bin にインストールされます。depends.exe がインストールされるのは、Visual C++ カスタム インストールの [Visual C++ ツール] カテゴリにある [Win32 Windows SDK ツール] を選択した場合だけです。

depends.exe、または /DEPENDENTS オプションを指定した DUMPBIN ユーティリティを使用すると、アプリケーションに静的にリンクされた DLL の一覧と、アプリケーションの遅延読み込み DLL の一覧を表示できます。

ActiveX コントロールなど、動的に読み込まれる DLL を表示するには、depends.exe のプロファイル機能を使用します。次に、すべてのコード パスが使用されるまで、アプリケーションをテストします。プロファイル セッションを終了すると、動的に読み込まれた DLL が表示されます。

depends.exe を使用する場合は、他の DLL に依存している DLL や、特定の DLL バージョンに依存している DLL があることに注意してください。depends.exe は、開発用コンピュータとターゲット コンピュータのどちらでも使用できます。開発用コンピュータでは、アプリケーションのサポートに必要な DLL を報告します。ターゲット コンピュータでアプリケーションを実行できない場合は、depends.exe をターゲット コンピュータにコピーし、depends.exe でアプリケーションを開きます。depends.exe は、アプリケーションに不足している DLL またはバージョンの正しくない DLL を報告します。

アプリケーションが依存する DLL の完全な一覧が得られたら、アプリケーションを別のコンピュータに配置するときに共に再配布する必要がある DLL を判断できます。ほとんどの場合、システム DLL を再配布する必要はありませんが、場合によっては Visual C++ ライブラリの DLL を再配布する必要があります。詳細については、「再配布する DLL の決定」を参照してください。

参照

その他の技術情報

配置 (C++)