【发布时间】:2026-01-05 23:45:02
【问题描述】:
我的目标是创建一个 MFC/C++ DLL,它除了基本的 Win32 DLL 之外没有任何依赖项。所以我在项目属性中选择了"Use MFC in a Static Library"设置->General->Use of MFC:
但是当我构建这个 DLL 并使用 Dependency Walker 检查结果时,我得到了这个:
显示对以下 MFC Dll 的依赖关系:
MFC90U.DLL
MSVCR90.DLL
MSVCP90.DLL
那么我在这里做错了什么?
PS。我正在使用 Visual Studio 2008
【问题讨论】:
-
是否启用了增量链接?重建所有帮助吗?
-
MSVCR90.DLL和MSVCP90.DLL不是 MFC 二进制文件。 -
@IInspectable:嗯,老实说,我从来没有考虑过。但是,如果您将项目构建为使用“MFC 作为共享 DLL”,则这些文件将包含在内。默认情况下,它们也不包含在 Windows XP 安装中(甚至可能是 Vista),因此必须通过 MSI(和“DLL-Hell”)分发。
-
正确,运行时支持库是 VS 2008 中编译器的一部分,而不是操作系统。这只在 Windows 10 中发生了变化,Universal CRT 是操作系统的一部分。
标签: c++ windows visual-c++ visual-studio-2008 mfc