在vs2013下,使用GetVersionEx来获取操作系统的版本信息,vs报错error: `GetVersionEx‘ declared deprecated,于是去msdn查看了一下,推荐使用VerifyVersionInfo来进行版本判断,官方解释是因爲一般只要判断是否windows的版本大于某个特定的版本号。
于是我查看了一下VerifyVersionInfo,这个函数的使用就是针对特定的版本信息字段进行条件判断。
参数1:OSVERSIONINFOEX 这个结构里保存用户提供的系统版本信息,例如major version,minor version等,这些会用作和系统实际信息进行比较。
参数2:dwTypeMask 类型掩码,是由一些宏进行或操作之后的结果,例如 VER_MAJORVERSION | VER_MINORVERSION 告诉函数major version和minor version需要进行比较,如果只定义VER_MAJORVERSION那么就只会判断major version字段。
参数3:dwlConditionMask 条件掩码,目的是向用户提供丰富的判断条件设置,各个字段都有相应的判断条件设置,通过VER_SET_CONDITION宏进行条件设置。
我写了一段代码进行windows版本判断:
BOOL isWinVersionEqualTo(DWORD dwMajorVersion, DWORD dwMinorVersion)
{
OSVERSIONINFOEX osvi;
DWORDLONG dwlConditionMask = 0;
//Initialize the OSVERSIONINFOEX structure.
Z