旧项目移植至VS2008的编译错误C1189

来源:互联网 发布:java 获取对象地址 编辑:程序博客网 时间:2024/05/16 08:20

【错误】

fatal error C1189: #error :  _WIN32_WINNT settings conflicts with _WIN32_IE settingC:\Program Files\Microsoft SDKs\Windows\v6.0A\include\sdkddkver.h217


【原因】

stdafx.h中定义了不正确的Windows版本号, 修改成对应值即可。


【MSDN详解】

http://msdn.microsoft.com/zh-cn/library/6sehtctf(v=vs.90).aspx

如何:修改 WINVER 和 _WIN32_WINNT
Visual Studio 2008 其他版本 此主题尚未评级 评价此主题
更新:2007 年 11 月


从 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(预处理器定义)。


有关这些宏的含义的更多信息,请参见使用 Windows 头文件。


原创粉丝点击