GetVersion 函数 (sysinfoapi.h)
Windows 8.1后,GetVersion 可能会更改或不可用于发布。 请改用 版本帮助程序函数。 有关Windows 10应用,请参阅面向 Windows 的应用程序。
随着 Windows 8.1 的发布,GetVersion API 的行为在它将为操作系统版本返回的值中发生了变化。 GetVersion 函数返回的值现在取决于应用程序的清单方式。
未针对Windows 8.1或Windows 10进行清单的应用程序将返回Windows 8 OS 版本值 (6.2) 。 为给定的操作系统版本对应用程序进行清单后, GetVersion 将始终返回应用程序在未来版本中为其清单的版本。 若要针对Windows 8.1或Windows 10来清单应用程序,请参阅面向 Windows 的应用程序。
语法
NOT_BUILD_WINDOWS_DEPRECATE DWORD GetVersion();
返回值
如果函数成功,则返回值包括低序字中操作系统的主版本号和次版本号,以及高序字中有关操作系统平台的信息。
对于所有平台,低序字包含操作系统的版本号。 此单词的低序字节以十六进制表示法指定主版本号。 高位字节以十六进制表示法指定次要版本 (修订版) 数字。 高位为零,接下来的 7 位表示生成号,低位字节为 5。
注解
开发 GetVersionEx 函数是因为许多现有应用程序在检查 GetVersion 返回的打包 DWORD 值时出现错误,转置主要版本号和次要版本号。 GetVersionEx 强制应用程序显式检查版本信息的每个元素。 VerifyVersionInfo 通过将所需的系统版本与当前系统版本进行比较,消除了进一步出错的可能性。
示例
以下代码片段演示如何从 GetVersion 返回值中提取信息: OSVERSIONINFOEX
#include <windows.h>
#include <stdio.h>
void main()
{
DWORD dwVersion = 0;
DWORD dwMajorVersion = 0;
DWORD dwMinorVersion = 0;
DWORD dwBuild = 0;
dwVersion = GetVersion();
// Get the Windows version.
dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
// Get the build number.
if (dwVersion < 0x80000000)
dwBuild = (DWORD)(HIWORD(dwVersion));
printf("Version is %d.%d (%d)\n",
dwMajorVersion,
dwMinorVersion,
dwBuild);
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | sysinfoapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |