Проблема версии 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 для получения дополнительной информации.