VC manifest
manifest原理和用途
dll是被动态调用的,所以会被若干个程序共享使用的 但是如果dll在应用程序不知道的情况下升级了、或是被另一个程序更改了,就可能会出现问题,即”DLL Hell”
随着系统资源越来越丰富,硬盘不那么紧张,所以在XP以后的操作系统中,用新的机制来管理DLL
(这种机制,这不仅仅是对于.NET而言,对于普通的Native程序也是一样的)
Madifest是个XML的描述文件,对于每个DLL有DLL的Manifest文件,对于每个应用程序Application也有自己的Manifest
对于应用程序而言,Manifest可以是一个和exe文件同一目录下的.manifest文件,也可以是作为一个资源嵌入在exe文件内部的(Embed Manifest)
XP以前版本的windows,会像以前那样执行这个exe文件,寻找相应的dll,没有分别Manifest只是个多余的文件或资源,dll文件会直接到system32的目录下查找,并且调用
而XP以后的操作系统,则会首先读取Manifest,获得exe文件需要调用的DLL列表(此时获得的,并不直接是DLL文件的本身的位置,而是DLL 的manifest)操作系统再根据DLL的Manifest去寻找对应的DLL<因此就可能区别不同版本的同一个DLL文件,或是指定一个程序本 身Isolated的DLL>
不过使用Visual Studio 2005以后的一个新问题是,VS2005带的8.0新版的C运行库(VC 8.0 CRT)文件在XP以后支持manifest的Windows版本中被调用时,将会check一下Application自身的Manifest,否则将 会拒绝被调用。这也就是说,使用Visual Studio开发的Application,Manifest将是必不可少的(搞不懂MS为啥要这样设置,所以与VS2003.NET不同了。后来想想, 除了MS自己说的哪些冠冕堂皇的原因,至少这样一来Linux的Wine模拟要麻烦多了)
除非,你的程序是静态链接的,没有使用dll,只使用了操作系统核心的 Kernel32.dll, User32.dll, Ole32.dll, 或ShDocVW.dll 等。project的设置必须是Use Standard Windows Libraries、Not Using ATL、No Common Language Runtime support
那么你可以不需要考虑Manifest 可以关掉它
VS2005中Menifest相关的设置
- Project/Properties/Linker/Manifest File/Generate Manifest 决定是否生成Manifest,如上情况才可以关闭
- Project/Properties/Linker/Manifest File/Allow Isolation 这个是设置DLL的调用的,并不能决定Manifest是否还是必须的
- Project/Properties/Manifest Tool/Input and Output/Embed Manifest 决定Manifest是个单独的文件还是嵌入到exe内的资源
对于我来说,使用SDL必须是启用DLL的动态链接方式,所以必须开启Manifest,并且让Manifest Embed进入exe比较方便
与上面内容相应的 是关于如何发布软件的问题,事实上只有VC6.0的CRT库是绑定作为Windows的一部分的,之后从VS.net开始,VC程序制作安装包也是要考虑 库文件的,只不过VC6.0时推荐拷入System32,VC.net时推荐放在exe文件local目录,而现在VS2005则还需要考虑 Manifest的问题了,看似麻烦,其实也还好,VS自带工具打包,下面一些网址也有讲如何手工做redistribution
相关文章:

判断年月日是否正确
//输入年月日 Console.Write("请输入年:"); int year Convert.ToInt32(Console.ReadLine()); Console.Write("请输入月:"); int month Convert.ToInt32(Console.ReadLine()); Console.Write("请输入日:"); i…

Java项目:农业计算工具(java+swing)
源码获取:博客首页 "资源" 里下载! 1、换算:吨、千克、斤,晌/公顷、亩、平方米,晌/株、亩/株、平方米/株 2、籽粒干重、果穗干重、出籽率计算 3、发芽种粒数、供试种粒数、发芽率计算 4、种子袋、晌、亩、品种 换算 pac…

web网站加速之CDN(Content Delivery Network)技术原理
2019独角兽企业重金招聘Python工程师标准>>> 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的信息&…

response.getWriter().write()和 response.getWriter().print()的区别
异步上传图片的代码。发现里面用了response.getWriter().print(),故联想到response.getWriter().writer(),经过一番api的查找与实操,总结如下: response.getWriter()返回的是PrintWriter,这是一个打印输出流。response…

c语言中volatile关键字的作用
读文章之前 可以先看一下《程序员的自我修养 》第28页 过度优化。 volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有 volatile关键字,则编…

Java项目:抽奖点名神器(HTML+可自定义抽选)
源码获取:博客首页 "资源" 里下载! 用于年终抽奖或随机点名神器 //获取页面元素var student_box document.getElementById("student_box");//循环生成HTMLvar html "";for (var i 0 ; i < 22; i ) {html <div st…

Hive Metastore 连接报错
背景 项目中需要通过一些自定义的组件来操控hive的元数据,于是使用了remote方式来存储hive元数据,使用一个服务后台作为gateway,由它来控制hive元数据。 现象 在windows上连接hive metastore的时候,无端的会报NullPointerExceptio…

普通的简单对话框
2019独角兽企业重金招聘Python工程师标准>>> activity_main.xml <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"fill_parent"and…

[POI2007]ZAP-Queries
出处:http://www.cnblogs.com/peng-ym/p/8660937.html (还是 建议 去看 原文) 题目:链接:https://www.luogu.org/problemnew/show/P3455 #include<bits/stdc.h> #define LL long long #define ULL unsigned long…

python pdb 基础调试
当手边没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试)参考:http://docs.python.org/library/pdb.html和 (pdb)help首先你选择运行的 pypython -m pdb myscript.py(Pdb) 会自动停在第一行ÿ…

Java项目:设计管理系统(java+SSM+JSP+MYSQL+layui+Maven)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能包括: 课题管理,学生管理,内容管理,文件管理,提问管理,教师管理,进度管理等等。 二、项目运行 环境配置…

linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件...
原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html 之前写过一篇《windows下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件》,关于ant打包原理,请先阅读此篇文章,再阅…

自制的一个eclipse 插件jcodesmith(代码生成器)
为什么80%的码农都做不了架构师?>>> 实现思路 使用模板输出,定制一些特定的输入【如数据库元素、普通文件】等控制模板生成;并把指定输入可视化,方便使用; 下载安装 插件下载:http://git.os…

Boring counting HDU - 3518 (后缀数组)
Boring counting \[ Time Limit: 1000 ms \quad Memory Limit: 32768 kB \] 题意 给出一个字符串,求出其中出现两次及以上的子串个数,要求子串之间不可以重合。 思路 对字符串后缀数组,然后枚举子串长度 \(len\),若某一段连续的 \…

什么是JTAG
JTAG(Joint Test Action Group)联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO&a…

Java项目:个人博客系统(java+SSM+Mysql+Servlet+JavaWeb)
源码获取:博客首页 "资源" 里下载! 一、项目简述 项目内容包括:首页,登陆,新建文章,搜索,登陆日志,登录次数,评论统计,相关信息,文章列…

Lucene4 入门(2)–Field类及辅助类说明
2019独角兽企业重金招聘Python工程师标准>>> Lucene4 入门(2)–Field类及辅助类说明 一、Eclipse中Field类的继承关系图: 二、Field类 1、 类的说明 在一般情况下为Document对象创建一个Field对象会使用它的子类,比如: IntField,…

C#入门详解(4)
什么是类型 类型又名数据类型。表示数据在内存中存储时的型号。小内存容纳大尺寸数据会丢失精度,发生错误。 大内存容纳小尺寸的数据会导致内存浪费。 编程语言的数据类型与数据的数据类型不完全相同。 类型在C#语言中的作用 类型所包含的信息有: 存储此…

使用 Trace32 对 FLASH 编程
from: http://www.ibm.com/developerworks/cn/linux/l-trace32/随着软硬件复杂性的增加,在嵌入式系统开发中,调试器对项目的开发进度、质量起着越来越重要的作用。在众多的调试器中,Lauterbach 公司的 Trace32 凭借其强大的功能,…

Farseer.net轻量级ORM开源框架 V1.x 入门篇:新版本说明
导航目 录:Farseer.net轻量级ORM开源框架 目录 上一篇:没有了 下一篇:Farseer.net轻量级ORM开源框架 V1.x 入门篇:数据库配置 前言V1.x版本终于到来了。本次版本的开发从3月份开始,花了一个月的时间完成了概念版本设…

Java项目:健身管理系统(Java+ssm+springboot)
源码获取:博客首页 "资源" 里下载! 主要技术:springmvc、 springboot 、mybatis、mysql 、jQuery、layui、css、jsp shiro权限控制 主要功能截图如下: 用户登录、首页主要功能有:会员信息管理、会员到期续费…

计算几何算法概览
为什么80%的码农都做不了架构师?>>> 计算几何算法概览一、引言 计算机的出现使得很多原本十分繁琐的工作得以大幅度简化,但是也有一些在人们直观看来很容易的问题却需要拿出一套并不简单的通用解决方案,比如几何问题。作为计算…

诚意租房网blog2
(一)数据库设计部分: 创建数据库hourse: 1:关注表 CREATE TABLE guanzhu ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT NULL, hid int(11) DEFAULT NULL, time datetime DEFAULT NULL, PRIMARY KEY (id) ) ENGINEI…

基于S3C4510B的一个简单BSP的开发报告
系统环境 (一) 硬件环境 CPU:S3C4510B SDRAM:W981216DH 16M FLASH:MX29LV160AB 2M (二) 软件环境 tornado2.01 for arm(AKA的FTP上有tornado2.2需要的可以自己去下载:&#…

Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能包括: 房屋租赁管理系统是一款方便快捷,易操作的租房和各种物业收费的管理系统,该系统官网包含着用户和管理员分类登录,减少了为使用管理员…

sdtz技术组成
发送短信数据库表到第二天就删除前一天的的内容重新建表是用触发器功能实现的 回款、发标、发短信一些核心功能是用windows服务运行在服务器上自动运行的 sql管理中的维护计划就能设置自动备份数据库转载于:https://www.cnblogs.com/zheng510ke/p/4562812.html

13个 ASP.NET MVC 的扩展
ASP.NET MVC设计的主要原则之一是可扩展性。处理管线(processing pipeline)上的所有(或大多数)东西都是可替换的。因此,如果您不喜欢ASP.NET MVC所使用的约定(或缺乏某些约定),您可以…

javascript实例
数组排序 ①冒泡排序 思路: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤ÿ…

Ubuntu10.04安装Flash插件
1. 从Adobe下载Flash安装程序,并且解压。 tar -xzvf install_flash_player_10_linux.tar.gz 2. 把解压出来的“libflashplayer.so” 复制到 /usr/lib/mozilla/plugins 目录下。 sudo cp libflashplayer.so /usr/lib/mozilla/plugins 3. 执行以下命令&#x…

Java项目:健身俱乐部管理系统(java+SSM+Mysql+Jsp)
源码获取:博客首页 "资源" 里下载! 项目介绍: 基于jspmysqlSpringmybatis的SSM健身房管理系统 运行环境: jdk 1.8 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可…