我想判断当前操作系统是不是Win8 ? 求高人指点啊!

xiaodragonren 2012-12-11 08:56:08
OSVERSIONINFOEX osvi;  
BOOL bOsVersionInfoEx;

ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &osvi);

// win7的系统版本为NT6.1
if ( VER_PLATFORM_WIN32_NT == osvi.dwPlatformId &&
osvi.dwMajorVersion == 6 &&
osvi.dwMinorVersion == 1 )
{
return true;
}
else
{
return false;
}
上面的代码在Win8 64位 操作系统上获取的版本号和Win7 64位上获取的版本号完全相同。

请问如何判断当前操作系统为Win8 64位呢》?
...全文
410 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-03-12
  • 打赏
  • 举报
回复
您好,由于您长时间不结贴,上一次答复已超一个月并且已有最佳答案,本人帮你结贴。如有异议,请私信。
傻X 2012-12-13
  • 打赏
  • 举报
回复
vista osvi.dwMajorVersion == 6 osvi.dwMinorVersion == 0 win7 osvi.dwMajorVersion == 6 osvi.dwMinorVersion == 1 win8 官方文档没有 osvi.dwMajorVersion >=6; osvi.dwMinorVersion如果上面大于6,则值为0 osvi.dwMinorVersion如果上面等于6,则值为2
csdd1105 2012-12-13
  • 打赏
  • 举报
回复
学习了。向上了。
paldier 2012-12-12
  • 打赏
  • 举报
回复
if (NTDDI_VERSION >= NTDDI_WIN8)
九州剑王 2012-12-12
  • 打赏
  • 举报
回复
版主说的对,很明显是6.2的版本~不是说NT6就终结了么
breaksoftware 2012-12-12
  • 打赏
  • 举报
回复
抛开调用查询版本号的思路,你可以试图读取kernel32.dll User32.dll这些文件的版本号,不同版本的系统,这些文件的版本号(主要部分)是不同的。
oyljerry 2012-12-11
  • 打赏
  • 举报
回复
Win8应该是6.2吧

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧