MSVCP80D.dll找不到的解决方案

VS2005中建立Win32控制台程序时,可能会遇到以下运行错误:

于是程序无法正常运行。

    此问题的原因是由于VS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而在FAT32文件系统中,在处理清单文件阶段,当增量链接时不能完成清单文件的更新(默认情况下),于是造成清单文件嵌入失败,从而使该exe文件运行时没有相应的清单文件而运行失败并提示如上错误。而在NTFS文件系统中则不会出现上面的问题。

    比较好的解决方案有两个:

    1.在项目的“属性|配置属性|清单工具|常规”中的“使用FAT32解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。如下图所示:


 

    2.不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。如下图所示:

posted on 2008-07-02 11:22 codekitten 阅读(3534) 评论(6)  编辑 收藏 引用 所属分类: C++

评论

# re: MSVCP80D.dll找不到的解决方案 2008-07-02 23:24

不错~  回复  更多评论   

# re: MSVCP80D.dll找不到的解决方案 2008-07-06 00:09 foxtail

支持哈哈   回复  更多评论   

# re: MSVCP80D.dll找不到的解决方案 2009-02-06 15:06 MSVCP80D.dll找不到的解决方案

好  回复  更多评论   

# re: MSVCP80D.dll找不到的解决方案 2009-04-01 17:32 gaokaizh

第二种方法有效,第一种好像不行!  回复  更多评论   

# re: MSVCP80D.dll找不到的解决方案 2009-04-09 16:52 sgfregy

哈哈,不错,第一种不行,第二种可以解决  回复  更多评论   

# re: MSVCP80D.dll找不到的解决方案 2009-11-10 15:54 test

wo shi 我是第一种行啊  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

统计

常用链接

留言簿(1)

随笔分类(2)

随笔档案(2)

C++

积分与排名

最新评论