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

另请参阅