理解 Visual C++ 应用程序的依赖项

更新:2007 年 11 月

确定您的应用程序依赖哪些 Visual C++ 库的一种方法是:查看您项目的“属性页”对话框中的“常规”选项卡。例如,您可能看到项目使用的是 MFC 和 ATL 库。如果选择了“在动态库中使用 MFC”,则您的应用程序在运行时依赖 MFC DLL(如 mfc90.dll)。如果您的应用程序不使用 MFC 或 ATL,它可能仍依赖 CRT 库(如果已在“配置属性”的 C/C++ 分支中的“代码生成”选项卡上为“运行时库”选择了“多线程调试 DLL (/MDd)”)。

确定您的应用程序依赖哪些 DLL 的最全面的方式是:使用随 Visual C++ 提供的依赖项查看器 (Depends.exe) 打开该应用程序。Depends.exe 安装到 \Microsoft Visual Studio 2005\Common7\Tools\bin 中。请注意,只有当您选择 Win32 Windows SDK 工具(它位于 Visual C++ 自定义安装的“Visual C++ 工具”类别中)时,才会安装 depends.exe。

通过使用 depends.exe 或具有 /DEPENDENTS 选项的 DUMPBIN 实用工具,可以查看静态链接到您的应用程序的 DLL 的列表,以及应用程序的延迟加载的 DLL 的列表。

若要查看哪些 DLL(如 ActiveX 控件)是动态加载的,请使用 depends.exe 的分析功能。然后,测试该应用程序,直到您确信所有代码路径都已用过。在结束分析会话时,Depends.exe 将显示哪些 DLL 是动态加载的。

在使用 Depends.exe 时,要注意,DLL 可能有关于另一个 DLL 或特定 DLL 版本的依赖项。可以在开发计算机上或目标计算机上使用 Depends.exe。在开发计算机上,Depends.exe 将报告支持应用程序所需要的 DLL。如果在让应用程序在目标计算机上运行时遇到问题,可以将 Depends.exe 复制到目标计算机上,并在 Depends.exe 中打开该应用程序。Depends.exe 将报告缺少哪些应用程序的 DLL,或者虽然存在,但版本不正确的 DLL。

在您有了应用程序所依赖的 DLL 的完整列表后,就可以决定其中哪些 DLL 在部署到其他计算机时必须与您的应用程序一起重新发布。在多数情况下,没必要重新发布系统 DLL,但是可能必须重新发布 Visual C++ 库的 DLL。有关更多信息,请参见 确定要重新发布的 DLL

请参见

其他资源

部署 (C++)