使用 VS2010 我有这个错误:
error C1189: #error : NTDDI_VERSION setting conflicts with _WIN32_WINNT setting
在 StdAfx.h 中使用:
#define _WIN32_WINNT 0x0502
在我的其他来源 my.cpp 中,我使用:
#define NTDDI_VERSION 0x06000000
我该如何解决?
#define NTDDI_VERSION 0x06000000
那就是Vista。
#define _WIN32_WINNT 0x0502
那是Server 2003.
因此这些版本确实存在冲突。如果你想支持 Vista 及更高版本,你需要:
#define NTDDI_VERSION 0x06000000
#define _WIN32_WINNT 0x0600
如果您想要 Server 2003 及更高版本,那么您可以使用:
#define NTDDI_VERSION 0x05020000
#define _WIN32_WINNT 0x0502
注意
NTDDI_VERSION
定义也可以指定服务包。因此,如果您想要 Vista SP1 及更高版本,那么您可以使用:
#define NTDDI_VERSION 0x06000100
#define _WIN32_WINNT 0x0600
作为一般规则,您希望将这些定义设置为与您希望支持的最低版本相对应的值。
而不是使用这些神奇的常量,你应该写,例如:
#define NTDDI_VERSION NTDDI_VISTA
#define _WIN32_WINNT _WIN32_WINNT_VISTA
有关详细信息,请参阅 MSDN:使用 Windows 标头。