我正在尝试编写一个识别当前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()未在我的系统中定义并出现编译错误。
对此有何帮助?
答案 0 :(得分:2)
在Windows 8.1和Windows 10中,不推荐使用GetVersion和GetVersionEx函数。未在Windows 8.1或Windows 10中显示的应用程序将返回Windows 8操作系统版本值(6.2)