0

stdafx.h をプリコンパイル ヘッダーとして使用するプロジェクトがあります。これは、すべての cpp ファイルに最初のインクルードとして #include "stdafx.h" が含まれている必要があることを意味します。

ただし、ああ、「afxinet.h」を含める必要がありますが、コンパイラはこれに文句を言います

「エラー C1189: #error: WINDOWS.H は既に含まれています。MFC アプリには #include "windows.h" を含めてはなりません」

これは、WINDOWS.H がインクルードされたときに "afxinet.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) windows.h を afxwin.h に置き換え、設定で「MFC を使用」する必要があります (2) WinInet の MFC ラッパーを使用せず、関数を使用する必要があります。 Wininet.h から

于 2013-05-14T19:25:10.843 に答える