C++程序避免触发 Win7下的程序兼容助手

在win7或vista下安装编写的程序,经常会出现程序兼容助手,如下(图片来自于下面的参考文章):


出现该提示,是windows认为程序在安装过程中可能存在问题,并在该提示中列出了建议的解决方案。

而通常情况下,我们所编写的程序是不存在兼容性问题的,这时,windows的这种提示显得多余,而且造成用户体验较差。

针对该问题,微软提供了解决方案:

在manifest文件中,加入“compatibility”节点,用于告知系统该应用程序兼容compatibility中所列出的系统版本。如支持win7和vista,则加入以下内容:

<?xml version="1.0" encoding="UTF-8"standalone="yes"?>

    <assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0">

<compatibilityxmlns="urn:schemas-microsoft-com:compatibility.v1">

            <application>

                <!--The IDbelow indicates application support for Windows Vista -->

               <supportedOSId="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>

                <!--The IDbelow indicates application support for Windows 7 -->

               <supportedOSId="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>

           </application>

       </compatibility>

    </assembly>

 

通常,我们编译的程序不需要单独输出manifest文件(单独输出manifest文件是会有一种程序不清爽的感觉,每个dll或exe都将相应地有一个manifest文件)。

如何编译出在win7下不弹出兼容助手的程序?

1.      将上面的xml内容保存到一个xml文件中,如“123456.xml”;

2.      在VS项目属性,配置属性/清单工具/输入和输出/附加清单文件中加入该文件路径,如下:


3.      重新编译并生成exe文件,运行该exe,不再出现程序兼容助手提示。

 

参考:http://www.cnblogs.com/zhyong/archive/2011/08/09/2131815.html

参考:http://blog.csdn.net/maxuhuiabc/article/details/6081874

 

 

另外,以下设置可减少生成的exe的体积。

1.      配置属性/c++/代码生成,启用最小重新生成设为 否


2.      配置属性/链接器/常规,启用增量链接 设为 否


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值