Я пытаюсь написать программу на C++, которая идентифицирует текущую версию Windows. Я видел десятки таких вопросов и ответов, но никто из них не работал для меня.Проблема с версией Windows C++ с Windows 10 home
Я запускаю 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() не определен в моей системе и дает ошибку компиляции.
Любая помощь?
Итак, для Windows 10 только через это проявляется? – mbaros
@mbaros, по-видимому, нет. связанный вопрос имеет очень умное решение, которое вы могли бы попробовать. – jhbh
Да. Я уже это видел. Спасибо – mbaros