博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
win10 系统下获取系统版本号为6.2的问题
阅读量:7211 次
发布时间:2019-06-29

本文共 1185 字,大约阅读时间需要 3 分钟。

  近期赶时髦升级了win10,用着挺爽。但是某天在测试一个bug时发现要对win10做特殊处理,于是直接调用了GetVersionEx,并取出版本号进行判断,但是发现得到的版本竟然是6.2。当时就被雷到了,然后看了我们的其它产品中相关功能,皆获取的是6.2。

  在搜索一会儿之后,发现这是微软故意做的设定,函数可能在Win8.1之后会取消,推荐程序员们使用 ,所以在8.1之后的系统中此函数的行为改变了,如果程序没有加上正确的manifested以表明此程序兼容新系统,则只能得到6.2这个版本号。

  下面说说,需要如何添加一个正确的manifest,也可以去MSDN上直接看

   首先,如果原来程序就已经设置了附加一个额外的manifest文件,则直接在原来的manifest里的assembly根节点里加一段兼容指示:

 

 

  如果原来没有一个manifest文件,则可以在工程的某目录创建一个 xxx.manifest文件,里面写上以下内容,当然内容中的工程名称可以随意,并没有强制,只要确保compatibility节点的值不变就可以了:

工程名称

 

  然后在vs工程属性里找到“清单工具->输入和输出->附加清单文件”里填入manifest文件的相对路径,然后重新链接,你的程序就可以正常的使用GetVersionEx了。但出了新系统之后,估计还是要重新改下manifest以兼容新的系统。

 

转载于:https://www.cnblogs.com/k1988/p/4727757.html

你可能感兴趣的文章
【MySQL】【高可用】从masterha_master_switch工具简单分析MHA的切换逻辑
查看>>
xargs 和 exec详解
查看>>
ipmi对于统一硬件管理的意义
查看>>
SQL数据库高级查询命令(3)
查看>>
Ansible-playbook 拾遗
查看>>
以DES的方式实现对称加密,并提供密钥
查看>>
latex/Xelatex书籍排版总结---顺便附上一本排好的6寸android书…
查看>>
shell变量定义
查看>>
SSH远程登录VWware上的LFS
查看>>
互联生活:业务模式聚焦
查看>>
ELK采集之nginx 日志高德地图出城市IP分布图
查看>>
epson me 1+只有主机能打印不能共享网络打印问题的处理
查看>>
即时通讯开发----回音消除技术
查看>>
Windows Phone 7 定义和使用字典资源(ResourceDictionary)
查看>>
【VMware中搭建iOS开发环境的引导工具】
查看>>
数据库名、实例名、数据库域名、全局数据库名、服务名 我也迷糊了
查看>>
为Windows2008升级系统补丁
查看>>
LVS NAT 模型配置实例
查看>>
麦肯锡在全球调研分析160个案例,给出5个行业的34个AI应用场景
查看>>
SQL Server批量插入数据
查看>>