在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.      配置属性/链接器/常规,启用增量链接 设为 否

C++程序避免触发 Win7下的程序兼容助手相关推荐

  1. windows在此计算机上找不到系统映象,Win7下打开程序提示应用程序或dll 为无效的windows映像怎么办...

    在win7系统中我们经常会打开应用程序进行操作,不过有用户却发现打开应用程序的时候,系统就会弹出提示应用程序或DLL X:XXXXXX.DLL为无效的windows映像",使用主流的杀毒软件 ...

  2. win7下应用程序图标不显示

    win7下应用程序图标不显示 有个程序的图标怎么都不能显示,移到文件夹外能正常显示,影响观瞻,网上找了下资料.大致方案就是关闭桌面进程,清理图标缓存,启动桌面重建缓存.这个方法好像XP下面也可行的. ...

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

    在Vista/Win7下 运行一个 exe 应用程序后,系统经常弹出 兼容性助手对话框.这个十分烦人,上网搜索解决方案,  满屏都是修改系统组策略(实质是修改注册表),但是作为一个商业产品,有的用户不 ...

  4. win7下反汇编程序程序基址改变问题

    windows vista开始有动态基地址的功能,只要pe头Dll Characteristics有0x40每次加载时基地址都不一样 自己的程序: 要想基址固定,在链接器中去掉/DYNAMICBASE ...

  5. linux下java程序乱码,解决linux下java程序(例如applet)中文乱码问题

    解决linux下java程序(例如applet)中文乱码问题 平台:Mandriva 2006.0 将Windows下的字体文件simsun.ttc拷贝到/usr/share/fonts/zh_CN, ...

  6. 64位系统魔兽服务器不兼容,魔兽世界Win7下出现不兼容问题的解决办法

    3月18日消息,今日魔兽美服官方论坛上有玩家发帖称Windows 7系统在重装魔兽之后无法安装升级补丁包.这位玩家称,在Win7推出以后,打算将自己的Vista系统换成Win7.Windows7是20 ...

  7. 通过修改程序解决win7下应用程序兼容性助手弹出

    在win7和vista下,有一个系统兼容性助手功能,利用VS2008开发的程序在运行时,总是弹出应用程序兼容性助手提示框,非常烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定应用程序 ...

  8. 微信小程序 服务器触发事件,微信小程序组件间通讯与事件

    ##组件间通讯与事件 一.前言 如果小程序中有可复用的UI且具有一定的功能性,就可以使用自定义组件将其封装起来.(如果仅仅只需要复用UI可使用template)下面介绍父子组件的数据传递方法,以及一个 ...

  9. linux程序流量平滑,Linux下按程序查实时流量 network traffic(示例代码)

    实然看到下载速度多达几M/s,但实际上并没有什么占用带宽的进程. 相查看每个程序占用的网络流量, 但系统自带的 System Monitor 只能查看全局的流量, 不能具体看某个程序的...... k ...

最新文章

  1. 机器学习编程语言_我应该选择哪种编程语言? 我应该专注于前端吗? 后端? 机器学习?...
  2. python lowercase_python 的 string.casefold 和 string.lower 方法区别?
  3. 初试 webfont
  4. ecshop根目录调用_ecshop优化修改sitemap.xml到根目录
  5. CART决策树(分类回归树)分析及应用建模
  6. 阿里巴巴开源项目nginx_concat_module企业部署实例
  7. CentOS 使用 Docker 安装 Sentry
  8. ofstream与ate的故事
  9. fetch的基本用法
  10. Linux防火墙-netfilter filter表案列与nat表应用
  11. 在线文档有哪些技术难点
  12. 手写二叉树的基本操作
  13. 数据库中的日期相减_sql中两个日期相减
  14. php随机生成微信昵称(二)
  15. linux 软件放什么目录,Linux 下的各种目录
  16. MSP430F149IPMR
  17. 什么是动态代理?两种常用的动态代理方式
  18. 萌宠经济升温,宠物摄影师成为热门新职业-捷径系统
  19. 单片机晶振概述及工作原理
  20. Android系统的Ashmem匿名共享内存子系统分析(4)- Ashmem子系统的 Java访问接口

热门文章

  1. 苹果公司的“多样化”定义:包括加拿大人
  2. 一个不错的免费打电话的程序
  3. day4new-转自金角大王
  4. pandas与csv的用法笔记
  5. unity小技巧收集总结--自用(三)
  6. c语言加法器程序代码,利用EDA设计加法器和减法器并且附有程序代码的实验报告...
  7. 数据库锁与加锁情况介绍(记录锁、间隙锁、next-key锁)
  8. 网络号,IP,子网掩码之间的关系
  9. Android的surface的三种工作方式
  10. miui11可用的位置模拟器_MIUI11内测体验包