VS2008下编译问题:缺少dll文件的处理方法。

来源:互联网 发布:淘宝导航文字颜色代码 编辑:程序博客网 时间:2024/04/30 14:03

int main()
{
 cout<<"第一个程序/n";
 return 0;
}
运行后却出现了。。
'第一个程序.exe': Loaded 'D:/Backup/我的文档/Visual Studio 2005/Projects/第一个程序/debug/第一个程序.exe', Symbols loaded.
'第一个程序.exe': Loaded 'C:/WINDOWS/system32/ntdll.dll', No symbols loaded.
'第一个程序.exe': Loaded 'C:/WINDOWS/system32/kernel32.dll', No symbols loaded.
Debugger:: An unhandled non-continuable STATUS_DLL_NOT_FOUND exception was thrown during process load
The program '[184] 第一个程序.exe: Native' has exited with code -1073741515 (0xc0000135).
提示错误:没有找到MSVCP80D.dll导致程序无法启动。
问题补充:
我是按Ctrl+F5
运行后提示:没有找到MSVCP80D.dll因此这个应用程序未能启动。 说的尽量的清楚点,我用的是英文版的该怎么操作?
提问者: 195698089 - 一级
最佳答案
此问题的原因是由于VS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打开看看),并在链接完成后将该清单文件嵌入到exe文件中(默认情况下)。而在FAT32文件系统中,在处理清单文件阶段,当增量链接时不能完成清单文件的更新(默认情况下),于是造成清单文件嵌入失败,从而使该 exe文件运行时没有相应的清单文件而运行失败并提示如上错误。而在NTFS文件系统中则不会出现上面的问题。

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

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

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

 

英文版的也是一样的。。。。