什么是WINVER?

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

Solutions Collecting From Web of "什么是WINVER?"

WINVER决定了构建应用程序所需的最低平台SDK,而这又将在编译时确定头文件找到哪些例程。

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

修改WINVER和_WIN32_WINNT的 MSDN页面更详细地介绍了这一点。

WINVER定义了程序可以运行的最小Windows系统。 在MSDN有一个更详细的解释。 什么#define WINVER 0x0501意味着该程序需要运行Windows XP或server 2003,因此它可以通过该版本使用Windows功能。

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

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