避免c++程序在windows7或vista下关闭后出现程序兼容性助手

130 篇文章 1 订阅

避免c++程序在windows7或vista下关闭后出现程序兼容性助手

在windows7下面编写C++程序,每次关闭程序时都会出现程序兼容性助手的提示,如下图:

处理办法:在C++程序的文件夹里搜索到后缀名为manifest的文件,用VS或记事本打开。

复制代码
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
            <application>
                <!--The ID below indicates application support for Windows Vista -->
                <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
                <!--The ID below indicates application support for Windows 7 -->
                <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
            </application>
       </compatibility>
    </assembly>
复制代码

 将对应的 <compatibility> 节点复制到你的menifest文件assembly节内

找到MT.EXE路径,我的是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\mt.exe

将要修改的exe文件和编辑好的manifest文件放到同一目录中(我将这两个文件都放到MT.EXE所在的目录下了),执行以下命令:

进入到MT目录:

cd C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64

修改应用程序:

mt.exe /manifest Setup.exe.manifest /outputresource:Setup.exe;1

参考资料:

MSDN里MT.EXE:

http://msdn.microsoft.com/zh-cn/library/ms235591(v=VS.100).aspx

让程序不触发Vista/Win7下应用程序兼容性助手弹出:

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

Vista和windows7系统下程序兼容性助手:

http://developer.51cto.com/art/200810/91713.htm


如果安装程序是自己写的话,最好是将上面的代码和安装程序编到一起去。


VC6 编的程序添加Manifest方法:

应用程序VC6下使用manifest文件,在VISTA下增加小盾牌名是abc.exe。
  ①:复制一个[应用程序名].manifest(用VC7生成的)到res目录
  ②:把[应用程序名].manifest改成abc.manifest文件名,
   再把文件里的内容name="Microsoft.Windows.[应用程序名]"改成name="Microsoft.Windows.abc"
  ③:把abc.manifest添加到解决方案资源管理器VC6下使用manifest文件,在VISTA下增加小盾牌->Resource Files文件夹里(可以拖动过去)
  ④:打开abc.rc文件(文本方式打开),在最末尾添加
  IDR_MANIFEST RT_MANIFEST "res\\abc.manifest"
  打开Resource.h文件在开头添加
  #define IDR_MANIFEST 1
  ⑤:完成后重新编译程序就能看到Windows XP的风格啦
  ⑥:在windows98中必须要Mfc70.dll和MSVCR70.DLL这两个动态连接库VC6下使用manifest文件,在VISTA下增加小盾牌文件才能运行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值