我在尝试编译一个小的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
有什么理由?
答案 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“。