为什么在使用 VS 2008 构建 DLL 时不遵循 "Use MFC in a Static Library" 设置?

Why is "Use MFC in a Static Library" setting not followed when building a DLL with VS 2008?

我的目标是创建一个 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

我想我明白了。把我搞砸的是 C++ -> Code Generation -> Runtime Library 中的项目设置。它已更改为 Multi-threaded DLL (/MD),然后将以下内容添加到 stdafx.h 文件中:

#define _AFXDLL

所以要使其静态 link 到 MFC 库,我必须将第一个设置更改为 Multi-threaded (/MT) 并注释掉第二个设置。