Jac*_*kzz 0 c++ windows version
我必须得到OSVersion我的Windows8系统(版本应该是NT 6.2)在C++应用程序中使用.我尝试使用GetVersion函数调用.但它给了我一个原始的价值602931718.是否有某种方法可以获得此处列出的版本或如何将此原始值转换为可读形式?
小智 9
请注意,已弃用函数GetVersion和GetVersionEx.这也反映在他们的文档中.页面说(这个从GetVersion复制):
"随着Windows 8.1的发布,GetVersion API的行为已经改变了它将为操作系统版本返回的值.GetVersion函数返回的值现在取决于应用程序的显示方式."
您看过GetVersionEx()函数和OSVERSIONINFOEX结构吗?
可能的用法:
void print_os_info()
{
OSVERSIONINFOEX info;
ZeroMemory(&info, sizeof(OSVERSIONINFOEX));
info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx(&info);
printf("Windows version: %u.%u\n", info.dwMajorVersion, info.dwMinorVersion);
}
Run Code Online (Sandbox Code Playgroud)
我不明白,你说的是什么意思NT。根据MSDN:

从Windows XP开始,所有版本都是隐式NT版本。如果您想针对服务器版本进行测试,请检查以下值info.wProductType:
if(info.dwMajorVersion == 6)
{
if (info.dwMinorVersion == 0)
{
if (info.wProductType == VER_NT_WORKSTATION)
//Windows Vista;
else
//Windows Server 2008
}
else if (info.dwMinorVersion == 1)
{
if (info.wProductType == VER_NT_WORKSTATION)
//Windows 7
else
//Windows Server 2008 R2
}
else if (...) //etc...
}
Run Code Online (Sandbox Code Playgroud)
还有一件事:您还可以检查 的值info.dwBuildNumber。允许的值之一是VER_PLATFORM_WIN32_NT。