2016-10-12 2 views
-1

Я пытаюсь написать программу на 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() не определен в моей системе и дает ошибку компиляции.

Любая помощь?

ответ

2

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

см. Targeting your application for Windows для получения дополнительной информации.

+0

Итак, для Windows 10 только через это проявляется? – mbaros

+1

@mbaros, по-видимому, нет. связанный вопрос имеет очень умное решение, которое вы могли бы попробовать. – jhbh

+0

Да. Я уже это видел. Спасибо – mbaros

Смежные вопросы