gpt4 book ai didi

c++ - 使用 C++ 在 Windows 中获取 OSVersion

转载 作者:行者123 更新时间:2023-12-03 21:30:37 27 4
gpt4 key购买 nike

我必须获得我的 OSVersion 系统(版本应该是 Windows8 )的 NT 6.2 才能在 C++ 应用程序中使用。我尝试使用 GetVersion 函数调用。但它返回了一个原始值,如 602931718 。有什么方法可以获取列出的 here 版本,或者如何将此原始值转换为可读形式?

最佳答案

你看过 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);
}

我不明白,你说的 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...
}

还有一件事:您还可以检查 info.dwBuildNumber 的值。允许的值之一是 VER_PLATFORM_WIN32_NT

关于c++ - 使用 C++ 在 Windows 中获取 OSVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com