C/C++ - 判断Windows版本新方法

以前在代码中判断用户的Windows操作系统版本都是通过GetVersion或GetVersionEx获取版本号,然后比较。

今天偶然发现在新的Visual Studio提供了新的函数来判断系统版本,比直接调用API要方便得多。

为了使用新的函数,需要使用SDK 8.1。我用的VS2013,已经自带了。

更详细的说明可以看官方文档

http://msdn.microsoft.com/en-us/library/windows/desktop/dn424972(v=vs.85).aspx

#include "stdafx.h"
#include <iostream>
#include <windows.h>			// VersionHelpers.h 依赖于 windows.h
#include <VersionHelpers.h>     // Windows SDK 8.1 才有喔

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
  // 是否大于等于 XP
  if (IsWindowsXPOrGreater())
    cout << ">= XP" << endl;
  else
    cout << " < XP" << endl;

  // 是否大于等于 XP SP1
  if (IsWindowsXPSP1OrGreater())
    cout << ">= XP SP1" << endl;
  else
    cout << " < XP SP1" << endl;

  // 是否大于等于 XP SP2
  if (IsWindowsXPSP2OrGreater())
    cout << ">= XP SP2" << endl;
  else
    cout << " < XP SP2" << endl;

  // 是否大于等于 XP SP3
  if (IsWindowsXPSP3OrGreater())
    cout << ">= XP SP3" << endl;
  else
    cout << " < XP SP3" << endl;

  // 是否大于等于 Vista
  if (IsWindowsVistaOrGreater())
    cout << ">= Vista" << endl;
  else
    cout << " < Vista" << endl;

  // 是否大于等于 Vista SP1
  if (IsWindowsVistaSP1OrGreater())
    cout << ">= Vista SP1" << endl;
  else
    cout << " < Vista SP1" << endl;

  // 是否大于等于 Vista SP2
  if (IsWindowsVistaSP1OrGreater())
    cout << ">= Vista SP2" << endl;
  else
    cout << " < Vista SP2" << endl;

  // 是否大于等于 Win8
  if (IsWindows8OrGreater())
    cout << ">= Win8" << endl;
  else
    cout << " < Win8" << endl;

  // 是否大于等于 Win8.1
  if (IsWindows8Point1OrGreater())
    cout << ">= Win8.1" << endl;
  else
    cout << " < Win8.1" << endl;

  // 是否为服务器版
  if (IsWindowsServer())
    cout << "服务器版" << endl;
  else
    cout << "非服务器版" << endl;

  // 以上的函数都是通过IsWindowsVersionOrGreater实现的
  // Windows 2000的版本号为5.0,所以我们也可以直接通过版本号判断
  if (IsWindowsVersionOrGreater(5, 0, 0))
    cout << ">= Win 2000" << endl;
  else
    cout << " < Win 2000" << endl;

  system("pause");
  return 0;
}

Win7 x64 旗舰本运行效果:


另外,如果将平台工具集选择为支持XP的话,就不能用上面的函数了,会提示找不到VersionHelper.h头文件。


文章来自:http://www.tuicool.com/articles/NVrA7fn

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值