[ZZ]找不到MSVCP80D.dll的解决方案
注:本文并非作者原创,原文链接如下: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解决办法”选择“是”(默认为“否”),重新生成项目即可解决问题。如下图所示:
2.不启用增量链接。在项目的“属性|配置属性|链接器|常规”中的“启用增量链接”选择“否”。此方法阻断了问题产生的源头,其每次生成exe文件时都直接嵌入清单文件,而不是默认的根据时戳而决定是否更新清单文件。如下图所示:
这样就可以解决我们遇到的问题了。
我没有什么雄心壮志,我只想给自己和关心自己的家人和朋友一个交代,仅此而已。