错误C1189:#error:WINDOWS.H已包含在内。 MFC应用程序不得#include <windows.h>“** </windows.h>

时间:2013-05-14 19:07:37

标签: c++ reference header

我有一个使用stdafx.h作为预编译头的项目。这意味着所有cpp文件必须包含#include“stdafx.h”作为第一个包含。

但是,在A.h中,我需要包含“afxinet.h”,但是编译器会抱怨这个

“错误C1189:#error:WINDOWS.H已包含在内.MFC应用程序不得#include”windows.h“”

这是因为“afxinet.h”在包含WINDOWS.H时抱怨,但“stdafx.h”确实包含了WINDOWS.H,并作为A.cpp中的第一个包含存在。

这意味着我需要以某种方式将“afxinet.h”包含在“stdafx.h”前面,但“stdafx.h”是预编译头,需要作为第一个包含...

我怎样才能解决这个难题?

1 个答案:

答案 0 :(得分:3)

如果您的项目使用MFC,那么您应该在stdafx.h中包含它的头文件而不使用windows.h(因为它将包含在MFC中);如果包含windows.h,则无法使用MFC。 afxinet.h是MFC的一部分,所以,我想,你应该(1)用afxwin.h替换你的windows.h并在设置中使用“使用MFC”(2)不要为WinInet使用MFC包装器,使用函数来自Wininet.h