为什么"在静态库中使用MFC"使用VS 2008构建DLL时未设置设置?

时间:2017-01-20 09:15:15

标签: c++ windows visual-c++ visual-studio-2008 mfc

我的目标是创建一个没有基本Win32 DLL之外的任何依赖项的MFC / C ++ DLL。所以我选择了项目属性中的"Use MFC in a Static Library"设置 - > General - > Use of MFC

enter image description here

但是当我构建这个DLL并使用Dependency Walker检查结果时,我得到了这个:

enter image description here

显示以下MFC Dll的依赖项:

MFC90U.DLL
MSVCR90.DLL
MSVCP90.DLL

那我在这里做错了什么?

PS。我使用的是Visual Studio 2008

1 个答案:

答案 0 :(得分:1)

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

#define _AFXDLL

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