VisualStudio 编译出来的程序不兼容Win7
在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上给出的示例:
- <?xmlversion="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 ID below indicates application support for Windows Vista -->
- <supportedOSId="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
- <!--The ID below indicates application support for Windows 7 -->
- <supportedOSId="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
- </application>
- </compatibility>
- </assembly>
如果你的项目会生成一个.manifest文件的话,也就是不是内嵌模式,直接修改该文件,重新编译即可。
如果你的项目设置的是将.manifest文件内嵌到应用程序内部,则你需要先修改为非内嵌模式,编译,生成.manifest文件,修改该文件后,再将工程属性改为内嵌模式。同时将修改后的.manifest文件通过additional manifest file 选项添加到工程里面,重新编译即可。
原文地址:http://blog.csdn.net/rainkop/article/details/8065297
VisualStudio 编译出来的程序不兼容Win7相关推荐
- VS2010编译出来的程序不兼容Win7 再解
Win7有个很恶心人的东西那就是程序兼容助手了,如果你使用VS编译出来的程序包含setup(不区分大小写).或者是install(不区分大小写)这样的关键字,程序兼容助手就会主动去检查这些程序是否是兼 ...
- 开发兼容Win7的Ms Agent程序
有时为了提高客户体验,往往会在程序中增加帮助系统,当年OfficeXP提供了一种叫助手精灵的帮助插件,一个小老头来帮助用户使用Office.现在Win7了,直接使用以往的Ms Agent来开发老头做使 ...
- 通过修改程序解决Vista/Win7/Win8下应用程序兼容性问题
在Vista/Win7/Win8下,有一个系统兼容性助手功能,使得程序在安装完成后或运行时,总是弹出应用程序兼容性助手相关的提示,很是烦人,事实上我们的程序兼容性是没有问题的,只不过是在程序中没有指定 ...
- 【C/C++】VS的cl命令 | 配置环境变量 | 使用命令行编译C/C++程序
文章目录 一.前言 二.准备 三.配置环境变量 1. 逐步配置 2. 一步到位 四.语法 更多文章 一.前言 作为一个C++ (C语言) 程序员,VS可谓是编写代码的神器(天下第一IDE!).但是它的 ...
- linux 64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
-m32选项将int,long和指针设置为32位,并生成在任何i386系统上运行的代码. -m64选项将int设置为32位和long,指针设置为64位,并为AMD的x86-64体系结构生成代码. -m ...
- VS中编译64位程序以及遇到的问题(E0000235)
安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器. 1. 选择"Build" – "Configuration Manager"菜单 ...
- 在64位linux下编译32位程序
一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序. 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM ...
- linux64平台上编译32位程序: GCC编译选项 -m64 -m32 -mx32
原文链接:https://blog.csdn.net/yyywill/article/details/54426900 x86-64 与 IA-64 x86-64一般称为AMD x86-64,难道x8 ...
- [转组第10天] | Android6.0.0_r1源码编译和POC程序的编译
2018-05-23 Android6.0.0_r1源码编译 简要说明:android源码编译的四个流程:1.源码下载;2.构建编译环境;3.编译源码;4运行.下文也将按照该流程讲述. 主机环境 Ub ...
最新文章
- 《谷歌和亚马逊如何做产品》
- mysql获取服务器的剩余空间_mysql服务器内存耗尽,并占用大量swap
- Bootstrap3.0学习第八轮(工具Class)
- 如何在 M1 Mac 上运行Intel架构的应用程序?
- 排序算法专题-基数排序
- 公众号文章发送pdf文件 pdf文件如何变成导出图片
- vue+elementui+自定义Vue-Quill-Editor富文本框(一)
- 想去掉抖音短视频里的水印,有没有一键去水印的方法?
- JS实现歌词同步滚动效果
- python计算相关性系数
- 深度隐藏文件或文件夹原理与应用
- 前端模板template-web简单使用
- chmod +x 与chmod 777 的超详细解说
- 读王蒙的《庄子的快活》
- JavaApplication和JavaApplet的区别
- 收藏|Java程序员必看的几本基础书籍和常用工具
- Flutter教程之 02 Flutter 桌面程序开发入门教程运行hello world (教程含源码)
- 华为ENSP Wlan实验题
- Matter Over Wifi 例程体验(CHIP Over Wifi)
- 大家知道1GHz的周期等于多少秒吗
热门文章
- 鸿蒙1号6年级数学答案,一些常用的数学公式
- 新鲜事儿!只有AI作品的电影节;酷~AI纹身设计师;ChatGPT的接生婆RLHF;Wayve自动驾驶模型MILE… | ShowMeAI资讯日报
- 数字功放音质好不好?从哪些地方看
- 增加点赞手势图及提交按钮图标
- 堆(heap)系列_0x0A:3种方法一次性解决堆溢出问题
- 魔兽世界正式服哪个服务器稳定,魔兽世界正式服什么职业厉害2021
- 得到当前dgv的CurrentRow
- 二零零七年五一节自驾游记(十)--------0501若尔盖花湖II
- Impala和Presto的时间处理
- 天天向商为什么更名,更名为稿定设计之后有什么变化?