Проблема версии C++ для Windows с Windows 10 home

Я пытаюсь написать программу на C++, которая идентифицирует текущую версию Windows. Я видел десятки таких вопросов и ответов, но ни один из них не работал для меня.

Я использую Windows 10 Home Edition.

Я использую Visual Studio 2015.

Первые варианты, которые я попробовал:

    OSVERSIONINFO osvi;
    ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
    GetVersionEx(&osvi);
    cout << osvi.dwMajorVersion << endl;
    cout << osvi.dwMinorVersion << endl;

Это печатает 6 и 2, который согласно MSDN соответствует Windows 8.

Второй вариант, который я попробовал:

#include <VersionHelpers.h>

if (IsWindowsVistaOrGreater())
    printf("VistaOrGreater\n");
if (IsWindows7OrGreater())
    printf("Windows7OrGreater\n");
if (IsWindows8OrGreater())
    printf("Windows8OrGreater\n");
if (IsWindows8Point1OrGreater())
    printf("Windows8Point1OrGreater\n");
if (IsWindows10OrGreater())
    printf("Windows10OrGreater\n");

Таким образом, IsWindows10OrGreater () не определен в моей системе и выдает ошибку компиляции.

Любая помощь с этим?

1 ответ

В Windows 8.1 и Windows 10 функции GetVersion и GetVersionEx устарели. Приложения, не указанные для Windows 8.1 или Windows 10, вернут значение версии ОС Windows 8 (6.2)

см. Ориентация приложения для Windows для получения дополнительной информации.

Другие вопросы по тегам