error C1189:#error:This filerequires _WIN32_WINNT to be #defined at least to 0x0403
在win7与VS2010上使用不兼容,出现了如题的编译错误。
解决方法:
在stdafx.h头文件中增加1段编译选项。
(有2种方法:1种是MSDN上的,1种是兼容版的模式,2种都可以用,第2种兼容模式是供参考的材料)
------------------第1种方法------------------
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
------------------第2种方法------------------
#ifndef WINVER 0x0500
#define _WIN32_WINNT 0x0500
#endif
MSDN参考:
http://msdn.microsoft.com/zh-cn/library/6sehtctf(VS.90).aspx
如何:修改 WINVER和 _WIN32_WINNT
从 Visual C++ 2008开始,Visual C++ 不支持面向 Windows 95、Windows 98、Windows ME或 Windows NT。如果您的 WINVER或 _WIN32_WINNT 宏被指定到这些 Windows版本之一,则需要修改宏。当升级从 Visual C++ 的以前版本创建的项目时,如果将 WINVER或 _WIN32_WINNT 宏指定到不再受支持的 Windows版本,可能会看到与这些宏相关的编译错误。
若要修改宏,请在头文件中添加以下行:
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
这将以 Windows 2000操作系统为目标。其他有效值包括 0x0501(用于 Windows XP)、0x0502(用于 Windows Server 2003)和 0x0600(用于 Windows Vista)。
还可以使用 /D 编译器选项定义此宏;有关详细信息,请参见 /D(预处理器定义)。
摘自http://hi.baidu.com/vc_net/item/0185db2bb2fed984ae48f52e