什么是WINVER?

30

我在看一些代码时发现了这行代码:#define WINVER 0x0501,它出现在stdafx.h文件中。为什么需要定义WINVER?它对代码有什么影响?能否有人解释一下?

4个回答

28

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

您可以使用此选项,在编译时验证您的应用程序是否可在Windows 2000(0x0500)或Windows XP(0x0501)上运行,例如。

有关修改WINVER和_WIN32_WINNT的详细信息,请参阅MSDN页面。


1
Visual Studio的新版本为C++项目提供了“目标平台版本”属性。未来,这是否意味着它将取代在源代码中明确定义WINVER的做法? - Pressacco


3

WINVER代表Windows版本。简而言之,如果你正在为特定版本的Windows构建应用程序,则某些API在之前的版本中不可用。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接