visual-studio-2010 - 即使指定了空控制台应用程序,Visual Studio 2010 也包含 MFC (C++)

标签 visual-studio-2010 visual-c++ mfc

我花了一天的大部分时间试图弄清楚为什么会发生这个错误,但它继续让我感到困惑。

我在 Visual C++ 中创建了一个控制台应用程序并将其指定为空。将我的所有源代码放入虚拟文件夹并编译后,出现错误:

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(24): fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]



确实是奇怪的错误,因为我从未包含任何 MFC 文件。所以我通过在代码生成设置中指定“/MT”来解决这个问题。

这工作得很好......直到我决定包含“Windows.h”,它产生了这个错误:

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxv_w32.h(16): fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include windows.h

c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxv_w32.h(16): fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include windows.h



我已经尝试了所有我能想到的方法,包括使用和不使用预编译头重新创建项目、Win32 应用程序而不是控制台以及 WxWidget 应用程序。尽管我从未指定,但所有这些应用程序似乎都试图包含 MFC。任何人都可以对这个问题有所了解吗?谢谢!

最佳答案

找出包括 MFC header 的内容 - /showIncludes选项可能会有所帮助。

在IDE项目的属性页下是:

C/C++ | Advanced | Show Includes

一旦你知道谁包括他们,你就可以决定如何解决这个问题——你可能只需删除一个错误的 #include ,但它可能需要放弃您正在使用的依赖于 MFC 的库。

关于visual-studio-2010 - 即使指定了空控制台应用程序,Visual Studio 2010 也包含 MFC (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999716/

相关文章:

c# - 如何在 MFC 应用程序中承载 WPF 窗体

c# - 为什么这个字典在 VB.NET 和 C# 之间的调试中显示不同?

c# - 如何实现密码重置链接

c# - Treeview空白显示C#

c++ - 继承 noncopyable 对 dllexport 类没有影响

c++ - 如何初始化结构声明中的位域?

C++ CLI System.String^ 到 MFC LPCTSTR

c++ - 使用 Visual Studio Express 2010 环境

c++ - Win32 API : Creating file public for current user but private for everyone else

visual-c++ - `static char THIS_FILE[] = __FILE__;` 有什么意义?