0

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

然而,在啊,我需要包含“afxinet.h”,但编译器抱怨这个

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

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

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

我该如何解决这个困境?

4

1 回答 1

3

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

于 2013-05-14T19:25:10.843 回答