Функция GetVersion (sysinfoapi.h)

GetVersion может быть изменена или недоступна для выпусков после Windows 8.1. Вместо этого используйте функции вспомогателя версий. Сведения о Windows 10 приложениях см. в статье Назначение приложений для Windows.

С выпуском Windows 8.1 поведение API GetVersion изменилось в значении, которое он будет возвращать для версии операционной системы. Значение, возвращаемое функцией GetVersion , теперь зависит от манифеста приложения.

Приложения, не манифестированные для Windows 8.1 или Windows 10, будут возвращать Windows 8 версию ОС (6.2). После манифеста приложения для заданной версии операционной системы GetVersion всегда будет возвращать версию, для которую приложение будет манифестировано в будущих выпусках. Сведения о том, как манифестировать приложения для Windows 8.1 или Windows 10, см. в статье Назначение приложения для Windows.

Синтаксис

NOT_BUILD_WINDOWS_DEPRECATE DWORD GetVersion();

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение включает основной и дополнительный номера версий операционной системы в слове низкого порядка и сведения о платформе операционной системы в слове высокого порядка.

Для всех платформ слово низкого порядка содержит номер версии операционной системы. Байт этого слова в нижнем порядке указывает основной номер версии в шестнадцатеричной нотации. Байт высокого порядка указывает номер дополнительной версии (редакции) в шестнадцатеричной нотации. Бит высокого порядка равен нулю, следующие 7 битов представляют номер сборки, а байт низкого порядка равен 5.

Комментарии

Функция GetVersionEx была разработана из-за того, что многие существующие приложения ошиблись при проверке упакованных значений DWORD , возвращаемых GetVersion, транспонируя основные и дополнительные номера версий. 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
Header sysinfoapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также