使用某些Widows API时,明明包含了该头文件,却报错“error C2065: undeclared identifier”...

本文详细列举了不同版本Windows操作系统对应的宏定义,包括NTDDI_VERSION、_WIN32_WINNT、WINVER和_WIN32_IE等,帮助开发者正确配置编译环境,避免因版本不匹配导致的编译错误。

  在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统的版本的。而你的头文件中的定义并不是最新的。

  下面详细列举了每个Windows版本对应的NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE这些宏。

下表描述不同版本Windows头文件中推荐使用的宏

  Minimum system required          Macros to define 

  Windows Server 2008                     NTDDI_VERSION >= NTDDI_LONGHORN 
  Windows Vista                           NTDDI_VERSION >= NTDDI_VISTA 
  Windows Server 2003 SP1                 NTDDI_VERSION >= NTDDI_WS03SP1 
  Windows Server 2003                     NTDDI_VERSION >= NTDDI_WS03 
  Windows XP SP2                          NTDDI_VERSION >= NTDDI_WINXPSP2 
  Windows XP SP1                          NTDDI_VERSION >= NTDDI_WINXPSP1 
  Windows XP                              NTDDI_VERSION >= NTDDI_WINXP 
  Windows 2000 SP4                        NTDDI_VERSION >= NTDDI_WIN2KSP4 
  Windows 2000 SP3                        NTDDI_VERSION >= NTDDI_WIN2KSP3 
  Windows 2000 SP2                        NTDDI_VERSION >= NTDDI_WIN2KSP2 
  Windows 2000 SP1                        NTDDI_VERSION >= NTDDI_WIN2KSP1 
  Windows 2000                            NTDDI_VERSION >= NTDDI_WIN2K

下表描述不同版本Windows头文件中使用的合法宏

  Minimum system required                 Macros to define 
  
  Windows Server
2008 _WIN32_WINNT>=0x0600 WINVER>=0x0600
  Windows Vista _WIN32_WINNT
>=0x0600 WINVER>=0x0600   Windows Server 2003 _WIN32_WINNT>=0x0502 WINVER>=0x0502   Windows XP _WIN32_WINNT>=0x0501 WINVER>=0x0501   Windows 2000 _WIN32_WINNT>=0x0500 WINVER>=0x0500   Windows NT 4.0 _WIN32_WINNT>=0x0400 WINVER>=0x0400   Windows Me _WIN32_WINDOWS=0x0500 WINVER>=0x0500   Windows 98 _WIN32_WINDOWS>=0x0410 WINVER>=0x0410   Windows 95 _WIN32_WINDOWS>=0x0400 WINVER>=0x0400   Internet Explorer 7.0 _WIN32_IE>=0x0700   Internet Explorer 6.0 SP2 _WIN32_IE>=0x0603   Internet Explorer 6.0 SP1 _WIN32_IE>=0x0601   Internet Explorer 6.0 _WIN32_IE>=0x0600   Internet Explorer 5.5 _WIN32_IE>=0x0550   Internet Explorer 5.01 _WIN32_IE>=0x0501   Internet Explorer 5.0, 5.0a, 5.0b _WIN32_IE>=0x0500   Internet Explorer 4.01 _WIN32_IE>=0x0401   Internet Explorer 4.0 _WIN32_IE>=0x0400   Internet Explorer 3.0, 3.01, 3.02 _WIN32_IE>=0x0300

 

转载于:https://www.cnblogs.com/mforestlaw/p/3510609.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值