我正在使用Windows 7計算機,所以我已經定義了WINVER和_WIN32_WINNT來反映這一點。但是,當包含windows.h時,它不會看到原始的#define並將值重新定義爲默認值0x0400。我的代碼如下。這是使用mingw g ++在QT創建者的Windows 7 PC上。任何想法爲什麼發生這種情況?#define變量在windows.h中被忽略和重新定義
#define WINVER 0x0601
#define _WIN32_WINNT 0x0601
#if WINVER > 0x0600
#define GOOD
#endif
#include <windows.h>
#if WINVER > 0x0600
#define STILL_GOOD
#endif
#include <winuser.h>
#include <initguid.h>
#include <dbt.h>
編輯:我使用#if WINVER> 0x0600 ...語句來確定值是什麼。
windows.h包含winuser.h。你不應該自己包括它。 – chris
你如何確定默認值爲0x400? – bobestm
它看起來好像你有一個過時的SDK版本; V7.0A只將WINVER定義爲0x500或更高。您所描述的問題不會發生在v7.0A中,或者至少,我無法再現它。 –