1. 错误
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended
2. 原因
由于原工程与现在你的系统不兼容导致的,一般是原工程的版本较低,现在的版本较高,不能兼容。
3. 解决办法
A. 首先 找到stdafx.h头文件(一般头文件定义都在这里,首选就是找这里),
前3段是关于系统的(干涉,此处就是系统不兼容,所以全部注释掉),
最后1段是讲IE的(不干涉,默认处理) 注释掉前3 个低版本的
//#ifndef WINVER // Allow use of features specific to Windows 95 and Windows NT 4 or later. //#define WINVER 0x0400 // 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 0x0400 // 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 0x0410 // Change this to the appropriate value to target Windows Me or later. //#endif
B. 添加新的版本
#define WINVER 0x0500 #define _WIN32_WINNT 0x0500 #ifndef WINVER // 允许使用特定于 Windows XP 或更高版本的功能。 #define WINVER 0x0501 // 将此值更改为相应的值,以适用于 Windows 的其他版本。 #endif
C.IE的不用管
#ifndef _WIN32_IE // Allow use of features specific to IE 4.0 or later. #define _WIN32_IE 0x0400 // Change this to the appropriate value to target IE 5.0 or later. #endif
参考来源:http://blog.csdn.net/zwlq1314521/article/details/9167327 博主:刘二毛