我的目标是创建一个没有基本Win32 DLL之外的任何依赖项的MFC / C ++ 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
答案 0 :(得分:1)
我想我明白了。让我困惑的是C++
中的项目设置 - > Code Generation
- > Runtime Library
。它已更改为Multi-threaded DLL (/MD)
,然后将以下内容添加到stdafx.h
文件中:
#define _AFXDLL
因此,要将其静态链接到MFC库,我必须将第一个设置更改为Multi-threaded (/MT)
并注释掉第二个设置。