【发布时间】:2009-09-17 15:59:23
【问题描述】:
我正在查看一些代码,他们在stdafx.h 文件中有这一行:#define WINVER 0x0501?为什么需要定义WINVER?它如何影响您的代码?谁能解释一下?
【问题讨论】:
标签: c++ windows header header-files
我正在查看一些代码,他们在stdafx.h 文件中有这一行:#define WINVER 0x0501?为什么需要定义WINVER?它如何影响您的代码?谁能解释一下?
【问题讨论】:
标签: c++ windows header header-files
WINVER 确定构建您的应用程序所需的最低平台 SDK,这反过来又会在编译时确定哪些例程可以被标头找到。
您可以在编译时使用它来验证您的应用程序是否可以在例如 Windows 2000 (0x0500) 或 Windows XP (0x0501) 上运行。
Modifying WINVER and _WIN32_WINNT 上的 MSDN 页面对此进行了更详细的介绍。
【讨论】:
WINVER?
WINVER 定义了程序可以运行的最小 Windows 系统。有更详细的解释at MSDN。 #define WINVER 0x0501 的意思是该程序需要 Windows XP 或 Server 2003 才能运行,因此它可以在该版本之前使用 Windows 功能。
【讨论】:
WINVER 表示 Windows 版本。简而言之,如果您正在为特定版本的 Windows 进行构建,则可以使用一些以前版本中不可用的 API。
【讨论】:
通过定义WINVER 宏,您可以取消隐藏特定于某个 Windows 版本的一组函数。例如,如果您将其定义为#define WINVER 0x0502,您将无法使用仅在Windows Vista 中可用的TaskDialog。有关更多详细信息,您可以阅读 MSDN 中的 Using the Windows Headers 文章。
【讨论】: