2011-02-17 37 views

回答

11

通常,MFC應用程序代碼包括afx.hafxwin.h(後者包括前者)。的windows.h前兩行是

#ifndef _WINDOWS_ 
#define _WINDOWS_ 

這意味着如果包括該標頭_WINDOWS_變得定義。 Afx.h包括afxver_.h這頭包括afxv_w32.h其中包含下面的代碼:

#ifdef _WINDOWS_ 
    #error WINDOWS.H already included. MFC apps must not #include <windows.h> 
#endif 
... 
#include <windows.h> 

所以,如果你有windows.h MFC頭之前,你會得到在編譯時產生這個錯誤,正如你所看到的,如果你包括afxwin.h你自己不需要包含windows.h - 它已包含在afxv_w32.h之內。

2

因爲在MFC中你不應該直接使用它。 AFAIR你應該包含afx.h,而這又間接地包含了windows.h的正確方法。