Windows 10 home

时间:2016-10-12 13:05:01

标签: c++ windows msdn windowsversion

我正在尝试编写一个识别当前Windows版本的C ++程序。 我看到了几十个这样的问题和答案,但没有一个对我有用。

我正在运行Windows 10家庭版。

我正在使用Visual Studio 2015。

我尝试过的第一个选项:

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

根据MSDN对应的Windows 8打印6和2。

我尝试过的第二个选项:

#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 个答案:

答案 0 :(得分:2)

在Windows 8.1和Windows 10中,不推荐使用GetVersion和GetVersionEx函数。未在Windows 8.1或Windows 10中显示的应用程序将返回Windows 8操作系统版本值(6.2)

请参阅Targeting your application for Windows了解详情。