在VC++項目中直接#include <winuser.h>後,編譯器報出百餘個語法錯誤,涉及HDWP、MENUTEMPLATE、DLGPROC等類型標識符未定義,以及DECLSPEC_IMPORT、WINAPI等宏展開異常。
winuser.h是Windows SDK內部頭文件,依賴windows.h預先定義的宏和類型(如HWND、UINT、CALLBACK等)。直接包含會導致缺少必要的前置聲明。
只需包含標準Windows主頭文件:
#include <windows.h>
windows.h會按正確順序包含windef.h、winnt.h、winuser.h等核心頭文件,並定義所有必需的宏和類型別名。
#include <windows.h>winuser.h、wingdi.h等)commctrl.h用於公共控件)此原則適用於所有Windows API開發場景,可避免90%以上的頭文件依賴錯誤。