在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统的版本的。而你的头文件中的定义并不是最新的。(对于MFC,就是stdafx.h)下面详细列举了每个Windows版本对应的NTDDI_VERSION,_WIN32_WINNT,WINVER,_WIN32_IE这些宏。

The following table describes the preferred macros in use by the Windows header files.

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

The following table describes the legacy macros in use by the Windows header files.

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

关于_WIN32_WINNT的含义的更多相关文章

  1. 由css reset想到的深入理解margin及em的含义

    由css reset想到的深入理解margin及em的含义 原文地址:http://www.ymblog.net/content_189.html 经常看到这样语句,*{ margin:0px;pad ...

  2. Stack的三种含义

    作者: 阮一峰 日期: 2013年11月29日 学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词 ...

  3. wireshark抓包工具简介以及tcp三次握手的一些含义

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了.为了安全考虑, ...

  4. PV、EV、AC、BAC、EAC、ETC等计算公式含义

    PV.EV.AC.BAC.EAC.ETC等计算公式含义 PV Planned Value:计划值 应该完成多少工作, (按照计划截止目前应该花费的预算) AC Actual Cost:实际成本, 完成 ...

  5. _WIN32_WINNT not defined. Defaulting to _WIN32_WINNT_MAXVER (see WinSDKVer.h)

    原文地址::http://blog.csdn.net/xiaolongwang2010/article/details/7550505 相关网帖 1.错误找不到WinsdkVer.h----http: ...

  6. [MySQL]show index from tb_name命令各列的含义

    show index from table_name 这个命令有助于诊断性能低下的查询,尤其是查询是否使用了可用的索引. 下面介绍下 这个命令显示的结果列的含义: | Table | Non_uniq ...

  7. CPU状态信息us,sy,ni,id,wa,hi,si,st含义

    转自:http://blog.csdn.net/sasoritattoo/article/details/9318893 转自:http://fishermen.iteye.com/blog/1995 ...

  8. http错误代码含义中英文对照

    Http错误代码含义中文 概要当用户试图通过 HTTP 或文件传输协议 (FTP) 访问一台正在运行 Internet 信息服务 (IIS) 的服务器上的内容时,IIS 返回一个表示该请求的状态的数字 ...

  9. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...

随机推荐

  1. Two Sum(II和IV)

    本文包含leetcode上的Two Sum(Python实现).Two Sum II - Input array is sorted(Python实现).Two Sum IV - Input is a ...

  2. CodeForces 828C String Reconstruction(并查集思想)

    题意:给你n个串,给你每个串在总串中开始的每个位置,问你最小字典序总串. 思路:显然这道题有很多重复填涂的地方,那么这里的时间花费就会特别高. 我们维护一个并查集fa,用fa[i]记录从第i位置开始第 ...

  3. socket可读可写就绪条件

    参考 <UNIX 网络编程卷1>中的<第6章 I/O复用> 一. 满足下列四个条件中的任何一个时,一个套接字准备好读. 该套接字接收缓冲区中的数据字节数大于等于套接字接收缓存区 ...

  4. Redis哨兵(sentinel)

    介绍 Redis的sentinel主要是用来管理多个Redis服务器,sentinel负责(1)监控主服务器和从服务器的运行状态(2)主服务器运行故障时自动切换其中一台从服务器为主服务器 Sentin ...

  5. git看不到别人创建的远程分支

    解决办法: $ git fetch //取回所有分支(branch)的更新.如果只想取回特定分支的更新,可以指定分支名,例:$ git fetch <远程主机名> <分支名> ...

  6. bin log、redo log、undo log和MVVC

    logs innodb事务日志包括redo log和undo log.redo log是重做日志,提供前滚操作,undo log是回滚日志,提供回滚操作. undo log不是redo log的逆向过 ...

  7. Getting 'The AWS Access Key Id you provided does not exist in our records' error with Amazon MWS

    I upgraded from one version of Amazon MWS (marketplace web service) version https://mws.amazonservic ...

  8. centOS安装ab测试工具

    yum install apr-util cd /opt mkdir abtmp cd abtmp yum install yum-utils.noarch yumdownloader httpd-t ...

  9. UVA-12657 Boxes in a Line (双向链表)

    题目大意:一个1~n的升序数字序列,有4种操作.操作1,将x放到y前面一个位置:操作2将x放到y后面的一个位置:操作3交换x和y的位置:操作4反转整个序列.求经过m次操作后的所有奇数项的和. 题目分析 ...

  10. C语言中的可变参数函数

    C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...); 它除了有一个参数format固定以外 ...