什么是WINVER?

时间:2009-09-17 15:59:23

标签: c++ windows header header-files

我正在查看一些代码,他们在#define WINVER 0x0501文件中有这一行:stdafx.h?为什么需要定义WINVER?它如何影响您的代码?有人可以解释一下吗?

4 个答案:

答案 0 :(得分:23)

WINVER确定构建应用程序所需的最低平台SDK,这反过来将在编译时确定标题找到哪些例程。

您可以使用它来在编译时验证您的应用程序是否可以在Windows 2000(0x0500)上运行,或者在Windows XP(0x0501)上运行。

MSDN的Modifying WINVER and _WIN32_WINNT页面更详细地介绍了这一点。

答案 1 :(得分:4)

WINVER定义程序可以运行的最小Windows系统。有一个更详细的解释at MSDN#define WINVER 0x0501的含义是该程序需要运行Windows XP或Server 2003,因此它可以通过该版本使用Windows功能。

答案 2 :(得分:3)

WINVER表示Windows版本。简而言之,如果您正在为特定版本的Windows构建,则可以使用以前版本中不可用的某些API。

答案 3 :(得分:3)

通过定义WINVER宏,您可以取消隐藏特定于某个Windows版本的一组功能。例如,如果您将其定义为#define WINVER 0x0502,则无法使用仅在Windows Vista中可用的TaskDialog。有关详细信息,请阅读MSDN中的Using the Windows Headers文章。