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

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

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

  Minimum system required          Macros to define 

  Windows Server                      NTDDI_VERSION >= NTDDI_LONGHORN
  Windows Vista NTDDI_VERSION >= NTDDI_VISTA
  Windows Server SP1 NTDDI_VERSION >= NTDDI_WS03SP1
  Windows Server 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 SP4 NTDDI_VERSION >= NTDDI_WIN2KSP4
  Windows SP3 NTDDI_VERSION >= NTDDI_WIN2KSP3
  Windows SP2 NTDDI_VERSION >= NTDDI_WIN2KSP2
  Windows SP1 NTDDI_VERSION >= NTDDI_WIN2KSP1
  Windows NTDDI_VERSION >= NTDDI_WIN2K

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

  Minimum system required                 Macros to define
  
  Windows Server _WIN32_WINNT>=0x0600
WINVER>=0x0600
  Windows Vista _WIN32_WINNT>=0x0600
WINVER>=0x0600
  Windows Server _WIN32_WINNT>=0x0502
WINVER>=0x0502
  Windows XP _WIN32_WINNT>=0x0501
WINVER>=0x0501
  Windows _WIN32_WINNT>=0x0500
WINVER>=0x0500
  Windows NT 4.0 _WIN32_WINNT>=0x0400
WINVER>=0x0400
  Windows Me _WIN32_WINDOWS=0x0500
WINVER>=0x0500
  Windows _WIN32_WINDOWS>=0x0410
WINVER>=0x0410
  Windows _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, .0a, .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

使用某些Widows API时,明明包含了该头文件,却报错“error C2065: undeclared identifier”的更多相关文章

  1. Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)

    Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件) 一.HttpPost上传文件 public static String getSuffix(fi ...

  2. VC中明明已经添加了头文件却还提示未定义的问题

    我在VS中编译程序遇到这个错误:error C3861: 'ReadDirectoryChangesW': identifier not found, even with argument-depen ...

  3. ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

    原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...

  4. CentOS命令登录MySQL时,报错ERROR 1045 (28000):

    CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解 ...

  5. sublime text3 当运行报错error时,取消显示路径path的方法

    sublime text3 每当运行报错error时,都会出现一长串的path路径,如何不显示呢? 可以通过注释掉Packages/Default/exec.py的四个特定行来更改. 首先,您需要从P ...

  6. 启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错

    启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错解决办法:打开Tomcat安装后目录,进入conf文件夹,找到配置文件 ...

  7. 安装centos6.10时,安装完成重启报错error 15,file not found

    今天在一台老式联想服务器上安装centos6.10操作系统,安装完成,重启时,出现报错 error 15, file not found...... 在百度上搜索到进grub编辑,可还是无法解决问题, ...

  8. linux下编译时的默认库和头文件搜索路径

    链接库路径 默认的链接库路径,定义在搜索/etc/ld.so.conf下的一些路径,其包含了一些重要的系统位置:LIBRARY_PATH, 但如果定义了LD_LIBRARY_PATH, 动态库的搜索路 ...

  9. SonarQube执行代码分析时,报错ERROR: Unable to create symbol table for : /**/*.java java.lang.IllegalArgumentException: Unsupported class file major version 55

    若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11686633.html 起因: 最近正在尝试SonarQube的简单使用,但是当 ...

随机推荐

  1. SAP HANA中创建分析权限(Analytic Privilege)

    Demo Instruction: 假定CustomerID > 100的为VIP客户,我们的权限设置为只显示VIP客户 所使用的Attribute View: ATTR_CUSTOMER_FU ...

  2. 利用Runtime给UITextView添加占位符(新方法)

     以前一直使用自定义UITextView通过通知中心来自定义placeHolder,最近看到这个方法,感觉更好 UITextView *textView = [[UITextView alloc]in ...

  3. CentOS 6.5安装PostgreSQL9.3.5时报错: jade: Command not found

    CentOS 6.5安装PostgreSQL9.3.5时报错: jade: Command not found 1[root@pghost1 postgresql-9.3.5]# ./configur ...

  4. php学习笔记——表单

    13.表单 1)GET vs. POST GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value ...

  5. private set

    表示只读: 例:public string DisplayName { get; private set; }  称为"自动属性" 等同于: private string _Dis ...

  6. SAP HANA创建层次结构的属性视图(Hierarchy Attribute View)

    在产品表中,数据是具有一定层次结构的 1. 在Content相应的package下面右键点击Attribute View,新建Attribute View 填写相关信息,注意:我们所建的依然是标准视图 ...

  7. UltraISO PE(软碟通) V9.5.5.2960 官方中文版

    软件名称: UltraISO PE(软碟通)软件语言: 简体中文授权方式: 免费试用运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 1.9MB图片预览: 软件简介 ...

  8. python基础(八)-迭代器与生成器

    一.迭代器 li=[1,2,3] f=li.__iter__() print(f) print(f.__next__()) print(f.__next__()) print(f.__next__() ...

  9. 【Python之路】第五篇--Python基础之杂货铺

    字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 ...

  10. python 基础学习2--编程

    python编程的步骤为: __name__ 指示模块如何被加载:如果模块被导入,__name__的值是模块的名称,如果模块被直接执行,__name__的值是main 变量不用进行声明,直接赋值:无需 ...