注:本文并非作者原创,原文链接如下:http://www.cppblog.com/codekitten/archive/2008/07/02/55124.html,在此谢谢原文作者解决了我的问题。

      在VS2005中建立Win32控制台程序时,可能会遇到以下运行错误:找不到MSVCP80D.dll,导致程序无法正常运行。

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

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

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

      
[ZZ]找不到MSVCP80D.dll的解决方案

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

相关文章:

  • 2021-07-28
  • 2021-08-15
  • 2021-04-11
  • 2022-01-10
  • 2021-07-26
  • 2023-01-12
  • 2021-11-13
猜你喜欢
  • 2021-05-01
  • 2021-08-25
  • 2021-10-05
  • 2021-06-30
  • 2022-12-23
  • 2021-04-05
  • 2021-08-26
相关资源
相似解决方案