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

.menifest文件是一个随工程编译产生的xml文件,作用是为操作系统提供了对应用程序部分信息的描述,每个exe程序或者dll都必须有一个manifest,对于应用程序而言,Manifest可以是一个和exe文件同一目录下的.manifest文件,也可以是作为一个资源嵌入在exe文件内部的(通过修改项目配置manifest tool->input output->Embed Manifest->yes), 如果应用程序没有.manifest文件,则会提示丢失MSVCR90D.dll,无法运行。

微软已经为应用程序的 menifest 文件中添加了一个新的<compatibility> Section, 这个Section用来指定你的应用程序可以兼容的操作系统。以下是MSDN上给出的示例:

[html] view plaincopy

  1. <?xmlversion="1.0"encoding="UTF-8"standalone="yes"?>
  2. <assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0">
  3. <compatibilityxmlns="urn:schemas-microsoft-com:compatibility.v1">
  4. <application>
  5. <!--The ID below indicates application support for Windows Vista -->
  6. <supportedOSId="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
  7. <!--The ID below indicates application support for Windows 7 -->
  8. <supportedOSId="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  9. </application>
  10. </compatibility>
  11. </assembly>

如果你的项目会生成一个.manifest文件的话,也就是不是内嵌模式,直接修改该文件,重新编译即可。

如果你的项目设置的是将.manifest文件内嵌到应用程序内部,则你需要先修改为非内嵌模式,编译,生成.manifest文件,修改该文件后,再将工程属性改为内嵌模式。同时将修改后的.manifest文件通过additional manifest file 选项添加到工程里面,重新编译即可。

原文地址:http://blog.csdn.net/rainkop/article/details/8065297

VisualStudio 编译出来的程序不兼容Win7相关推荐

  1. VS2010编译出来的程序不兼容Win7 再解

    Win7有个很恶心人的东西那就是程序兼容助手了,如果你使用VS编译出来的程序包含setup(不区分大小写).或者是install(不区分大小写)这样的关键字,程序兼容助手就会主动去检查这些程序是否是兼 ...

  2. 开发兼容Win7的Ms Agent程序

    有时为了提高客户体验,往往会在程序中增加帮助系统,当年OfficeXP提供了一种叫助手精灵的帮助插件,一个小老头来帮助用户使用Office.现在Win7了,直接使用以往的Ms Agent来开发老头做使 ...

  3. 通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题

    在Vista/Win7/Win8下,有一个系统兼容性助手功能,使得程序在安装完成后或运行时,总是弹出应用程序兼容性助手相关的提示,很是烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定 ...

  4. 【C/C++】VS的cl命令 | 配置环境变量 | 使用命令行编译C/C++程序

    文章目录 一.前言 二.准备 三.配置环境变量 1. 逐步配置 2. 一步到位 四.语法 更多文章 一.前言 作为一个C++ (C语言) 程序员,VS可谓是编写代码的神器(天下第一IDE!).但是它的 ...

  5. linux 64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32

    -m32选项将int,long和指针设置为32位,并生成在任何i386系统上运行的代码. -m64选项将int设置为32位和long,指针设置为64位,并为AMD的x86-64体系结构生成代码. -m ...

  6. VS中编译64位程序以及遇到的问题(E0000235)

    安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器. 1. 选择"Build" – "Configuration Manager"菜单 ...

  7. 在64位linux下编译32位程序

    一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序. 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM ...

  8. linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32

    原文链接:https://blog.csdn.net/yyywill/article/details/54426900 x86-64 与 IA-64 x86-64一般称为AMD x86-64,难道x8 ...

  9. [转组第10天] | Android6.0.0_r1源码编译和POC程序的编译

    2018-05-23 Android6.0.0_r1源码编译 简要说明:android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述. 主机环境 Ub ...

最新文章

  1. 《谷歌和亚马逊如何做产品》
  2. mysql获取服务器的剩余空间_mysql服务器内存耗尽,并占用大量swap
  3. Bootstrap3.0学习第八轮(工具Class)
  4. 如何在 M1 Mac 上运行Intel架构的应用程序?
  5. 排序算法专题-基数排序
  6. 公众号文章发送pdf文件 pdf文件如何变成导出图片
  7. vue+elementui+自定义Vue-Quill-Editor富文本框(一)
  8. 想去掉抖音短视频里的水印,有没有一键去水印的方法?
  9. JS实现歌词同步滚动效果
  10. python计算相关性系数
  11. 深度隐藏文件或文件夹原理与应用
  12. 前端模板template-web简单使用
  13. chmod +x 与chmod 777 的超详细解说
  14. 读王蒙的《庄子的快活》
  15. JavaApplication和JavaApplet的区别
  16. 收藏|Java程序员必看的几本基础书籍和常用工具
  17. Flutter教程之 02 Flutter 桌面程序开发入门教程运行hello world (教程含源码)
  18. 华为ENSP Wlan实验题
  19. Matter Over Wifi 例程体验(CHIP Over Wifi)
  20. 大家知道1GHz的周期等于多少秒吗

热门文章

  1. 鸿蒙1号6年级数学答案,一些常用的数学公式
  2. 新鲜事儿!只有AI作品的电影节;酷~AI纹身设计师;ChatGPT的接生婆RLHF;Wayve自动驾驶模型MILE… | ShowMeAI资讯日报
  3. 数字功放音质好不好?从哪些地方看
  4. 增加点赞手势图及提交按钮图标
  5. 堆(heap)系列_0x0A:3种方法一次性解决堆溢出问题
  6. 魔兽世界正式服哪个服务器稳定,魔兽世界正式服什么职业厉害2021
  7. 得到当前dgv的CurrentRow
  8. 二零零七年五一节自驾游记(十)--------0501若尔盖花湖II
  9. Impala和Presto的时间处理
  10. 天天向商为什么更名,更名为稿定设计之后有什么变化?