2015年10月15日 星期四

使用VC 2010 編譯時,遇到"fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended." 處理方式

網路上找了一份Source code要在 VS2010上 Build,出現了以下編譯錯誤訊息 "fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended." ,看起來是使用版本的問題。
解決方法
建立一個 "targetver.h" 文件,以下程式碼複到 "targetver.h" 裡存檔,再到 "stdafx.h" 中,添加#include"targetver.h",重新rebuild即可。

#ifndef WINVER                // Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0501        // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT        // Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0501        // Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINDOWS        // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0501 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE            // Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0601    // Change this to the appropriate value to target IE 5.0 or later.
#endif