谈谈Visual Studio中的清单
来源:互联网 发布:南京互动投影软件 编辑:程序博客网 时间:2024/05/24 22:44
清单的作用,指定程序依赖的C运行库的dll及版本,包括mfc,atl,CRT等,可以在visual studio安装目录下的vc/redist下看到Release和Debug的版本,具体依赖哪项,可以看看您的项目配置
(确定您的应用程序依赖哪些 Visual C++ 库的一种方式是:查看您项目的"项目设置"对话框中的"常规"选项卡。例如,您可能看到项目使用的是 MFC 和 ATL 库。如果选择了"在动态库中使用 MFC",则您的应用程序在运行时将依赖 MFC DLL(如 mfc80.dll)。如果您的应用程序不使用 MFC 或 ATL,它可能仍依赖 CRT 库(如果已在"项目属性"的 C/C++ 分支中的"代码生成"选项卡上为"运行时库"选择了"多线程调试 DLL (/MDd)")
---该段引自msdn理解 Visual C++ 应用程序的依赖项
清单可以嵌入也可以不嵌入。
嵌入的好处不需要特别留意将清单跟可执行程序放在一起,缺陷是换一个电脑运行出了问题不容易处理。
不嵌入的优缺点与嵌入的一一对应,此生彼长。
这里注意下,一般有三个文件,一个资源文件,一个中间清单,还有一个最终清单,对我们来说真正有用的就是最终清单,默认命名方式为程序名.manifest,比如你的可执行文件是test.exe,那么该最终清单为test.exe.manifest。
如果您调整清单设置由嵌入到不嵌入,注意需要重新编译所有依赖的外部库,否则容易导致R6034,某个应用程序尝试不使用清单来加载C运行库。
我除了遇到过上面这个清单引起的错误以外,还碰到如下由清单引起的错误:visual studio 2008 sp1编写的嵌入清单的程序换了台电脑运行,提示配置错误,使用visual studio 2008远程调试提示错误由清单导致,寻找错误的过程道路曲折,还是项目组组长细心地发现了问题,嵌入的清单引用的crt版本号与拷贝过去的crt库版本不一致,vs2008 sp1生成manifest文件中vc++ runtime的版本号为9.0.21022.8,而sp1的版本是9.0.30729.1。发现了问题接下来就好解决了,网上搜索下,具体可以参考http://blog.squallatf.org/post/125/,另外微软官方论坛也有对该问题的说明与解决方案。
- 谈谈Visual Studio中的清单
- Visual Studio .NET 中的清单资源
- 如何在 Visual Studio 2005 中的可执行文件中嵌入清单文件
- Visual Studio 清单(manifest)导致的问题
- Visual Studio 中的文件
- Visual Studio 中的环境变量
- Visual Studio中的文件类型
- Visual Studio中的快捷键
- Visual Studio中的Debug
- Visual Studio中的环境变量
- Visual Studio 2008 中的可执行文件中嵌入清单文件(manifest) Vista/win7 UAC中把应用程序标注为“需要管理员权限”
- Visual Studio 2008 中的可执行文件中嵌入清单文件(manifest) Vista/win7 UAC中把应用程序标注为“需要管理员权限”
- 谈谈visual studio QTCreator eclipse的远程调试
- Visual Studio中的XQuery支持
- Visual Studio 2008中的LINQ
- Visual Studio 2008 中的 ATL
- Visual Studio中的正则替换
- Visual Studio 2012中的国际化
- 图文印刷行业公共服务网络平台路在何方
- 在ubuntu9.04上安装git
- typename另外一篇文章
- ubuntu 更新源选择
- Eclipse 3.4 插件使用心得
- 谈谈Visual Studio中的清单
- hibernate映射的数据类型!(转)
- canny算子的理论分析
- Ado.Net执行SQL时,返回执行状态(进度)
- JAVA数据库课程设计的一些经验感想
- 传智播客ejb学习, EJB和Spring的比较及EJB3.0的运行环境
- [软件人生]程序员的寿命和工作(一句话回答)
- 对象互操作
- 泛型之Find方法学习