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