This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended

“C:/Program Files/Microsoft Visual Studio 10.0/VC/atlmfc/include/atlcore.h(35): fatal error C1189: #error :  This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.”

解决方法:

stdafx.h头文件中找到如下:

//#ifndef WINVER    // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。
//#define WINVER 0x0400  //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
//#endif
//
//#ifndef _WIN32_WINNT  // 允许使用 Windows NT 4 或更高版本的特定功能。
//#define _WIN32_WINNT 0x0400  //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。
//#endif      
//
//#ifndef _WIN32_WINDOWS  // 允许使用 Windows 98 或更高版本的特定功能。
//#define _WIN32_WINDOWS 0x0410 //为 Windows Me 及更新版本改变为适当的值。
//#endif
//
//#ifndef _WIN32_IE   // 允许使用 IE 4.0 或更高版本的特定功能。
//#define _WIN32_IE 0x0400 //为 IE 5.0 及更新版本改变为适当的值。
//#endif

替换为:

#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

原文地址:https://www.cnblogs.com/trenail/p/3968613.html