博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
谈谈Visual Studio中的清单
阅读量:4121 次
发布时间:2019-05-25

本文共 981 字,大约阅读时间需要 3 分钟。

清单的作用,指定程序依赖的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/,另外微软官方论坛也有对该问题的说明与解决方案。

 

 

 

转载地址:http://uwppi.baihongyu.com/

你可能感兴趣的文章
北京十大情人分手圣地
查看>>
Android自动关机代码
查看>>
Android中启动其他Activity并返回结果
查看>>
2009年33所高校被暂停或被限制招生
查看>>
GlassFish 部署及应用入门
查看>>
iWatch报错: Authorization request cancled
查看>>
iWatch报错: Authorizationsession time out
查看>>
如何运行从网上下载的iWatch项目详细步骤.
查看>>
X-code7 beta error: warning: Is a directory
查看>>
Error: An App ID with identifier "*****" is not avaliable. Please enter a different string.
查看>>
X-code beta 开发iWatch项目,运行没有错误,但是某些操作一点就崩,而且找不错误的原因场景一
查看>>
Xcode 报错: Extra argument in call
查看>>
iTunes Connect 上传APP报错: Communication error. please use diagnostic mode to check connectivity.
查看>>
#import <Cocoa/Cocoa.h> 报错 Lexical or Preprocessor Issue 'Cocoa/Cocoa.h' file not found
查看>>
`MQTTClient (~> 0.2.6)` required by `Podfile`
查看>>
X-Code 报错 ld: library not found for -lAFNetworking
查看>>
Bitcode
查看>>
If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
查看>>
3.5 YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
iOS菜鸟学习--如何避免两个按钮同时响应
查看>>