WINDOWS.H已经包含错误

时间:2011-03-22 13:49:40

标签: visual-studio-2008 compilation


我在尝试编译一个小的c ++程序时遇到错误 错误87致命错误C1189:#error:WINDOWS.H已包含在内。 MFC应用程序不得#include c:\ program files \ microsoft visual studio 9.0 \ vc \ atlmfc \ include \ afxv_w32.h 16

我确保windows.h不包含在我拥有的任何项目文件中。我正在使用visual studio 2008 IDE

有什么理由?

6 个答案:

答案 0 :(得分:14)

原因是因为某些 包括Windows.h:编译器不是骗你的。

转到项目属性 - >配置属性 - > C / C ++ - >高级并将显示包含设置为是。然后构建,编译器将显示一个列表,其中包含找到的每个包含的文件,并按照它找到的顺序,在此告诉您哪个文件最终包含windows.h

答案 1 :(得分:8)

尝试在 stdafx.h 之前加入 afxcoll.h 。我有同样的问题,它修复了它。 有关原始讨论,请参阅http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/2ab6862f-0d90-467a-b283-f62f6aef96fe/

答案 2 :(得分:3)

#include "afxwin.h"         // MFC core and standard components
#include "afxext.h"         // MFC extensions

将这些添加到我的stdafx.h文件中,整理出来的错误..希望这有助于其他人。

答案 3 :(得分:1)

默认情况下,Visual Studio会使用预编译的头文件来玷污您的程序,该文件可能包含一些内容,其中包含一些包含windows.h的内容。请务必在那里办理入住手续。

答案 4 :(得分:1)

在您的项目中,转到配置属性 - > C / C ++ - >预编译标题。确保预编译头设置设置为使用(/ Yu)

此设置“允许在构建期间创建或使用预编译的头”。

答案 5 :(得分:0)

我遇到的问题是“stdafx.h”文件包含在“StdAfx.h”文件中,配置属性 - > C / C ++ - >预编译标题中的文件名从未更新过“ stdafx.h“to”StdAfx.h“。