我正在看一些代码,他们有这样的行: #define WINVER 0x0501
在stdafx.h
文件? 为什么你需要定义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头文章。