6

我正在 Visual Studio 2010 中处理 Win32 项目。它正在生成 MFC 错误,错误如下所示

错误 C1189:#error:使用 /MD[d](CRT dll 版本)构建 MFC 应用程序需要 MFC 共享 dll 版本。请#define _AFXDLL 或不要使用 /MD[d]

IntelliSense:#error 指令:已包含 WINDOWS.H。MFC 应用程序不得#include

我的问题是为什么 WIN32 项目会产生 MFC 错误,我应该如何消除这个错误,请指导我

4

2 回答 2

7

问题是您包含的标题之一是包含“afx.h”。header 所做的第一件事是检查 _DLL 是否已定义,如果存在,它会查找 _AFXDLL 并在未定义时显示此错误消息。这是 afx.h 中的相关信息

#ifdef _DLL
#ifndef _AFXDLL
#error Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]
#endif
#endif

如果您不想包含 MFC,请转到您的项目属性并在C/C++ -> Advanced开关Show Includes ON 下查看包含 afx.h 的位置。

于 2013-09-09T07:47:26.457 回答
4

你能试试这个:

改变

项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行时库

作为

多线程 DLL (/MD)

于 2014-02-06T12:40:35.703 回答