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

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


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

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

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

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

   

            

               

               

               

               

           

      

   

 

通常,我们编译的程序不需要单独输出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.      配置属性/链接器/常规,启用增量链接 设为 否


 

你可能感兴趣的:(C/C++)