[zz]VS2008在WindowsXP下调试程序出R6034错误

原文:http://ks.cn.yahoo.com/question/1308031705287.html

在此之前,参考了很多关于R6034错误的网页,主要是考虑manifest:
(1)磁盘系统是fat32格式的:FAT32的时间精度不够,所以linker在生成文件的时候会出错,如果是ntfs的就没有问题.VS2005项目设置里面在清单工具(Manifest Tool)下面有一个选项"使用FAT32解决办法"(Use FAT32 work around)是专门解决这个问题的.对于FAT32的磁盘,需要选择"Yes",默认是"No".
(2)Visual Studio 2005用向导生成的项目,在运行时可能会遇到找不到MFC80UD.dll的问题。这个问题可能是Manifest 引起的,因此我们可以通过修改项目属性(properties)->清单工具(property pages)->链接(linker)-->manifest file -->Allow Isolation,把“嵌入清单”选“否”,.然后编译、链接、运行即可。Visual Studio 2005用向导生成的项目,在运行时可能会遇到找不到MFC80UD.dll的问题。这个问题可能是Manifest 引起的,因此我们可以通过修改项目属性->清单工具->输入输出,把“嵌入清单(Embed Manifest)”选“否”,.然后编译、链接、运行即可。
(3)有人提示,在项目属性里,mfc的使用应该设置为静态链接。但我改成静态后,会有很多错误,于是放弃。
(4)问了一个论坛上的网友,他说可能和Microsoft C++ Runtime Library有关系。
除此之外,一个参考文献上说的解决方法是:将Linker->Manifest File ->Allow Isolation:Do not Allow Side by Side isolation,则无论在Debug和Release条件,都出现如下:This application has failed to start because MSVCR80D.dll was not found. Re-installing the application may fix the problem." 关于这个问题,有篇博客文章上说: VS2005在FAT32分区的介质上对于Win32程序编译的一些注意问题描述:大部分的vs.net 2005的用户在新建“win32项目-windows应用程序”的时候,新建的工程都通不过去,出现如下提示:Solution to “MSVCR80D.dll not found”
“没有找到MSVCR80D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”

问题所在:由于vs.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个manifest文件(一般在嵌入文件里了,所以看不到
阅读更多

怎么解决R6034错误

02-20

使用Relese编译,出现一个R6034的问题,如下图:rn[img=http://p.blog.csdn.net/images/p_blog_csdn_net/clever101/365978/r_R6034.jpg][/img]rnrn到http://msdn2.microsoft.com搜索,找到一个方法: rnrn如何:将清单嵌入到 C/C++ 应用程序 rnrn建议 C/C++ 应用程序(或库)将其清单嵌入最终的二进制文件中,因为这可以确保运行库行为在多数情况下正确无误。默认情况下,当 Visual Studio 从源文件生成项目时,会尝试嵌入清单;有关更详细信息,请参见 Visual Studio 中的清单生成。但是,如果应用程序是使用 nmake 生成的,则需要更改现有的生成文件。本节演示了如何更改现有的生成文件,以便将清单自动嵌入最终二进制文件中。 rnrn两种方法 rn有两种方法可将清单嵌入应用程序或库中。 rnrn如果不执行增量生成,可以将如下命令行用作后期生成步骤来直接嵌入清单: rnrnmt.exe –manifest MyApp.exe.manifest -outputresource:MyApp.exe;1 rnrn或者 rnrnmt.exe –manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll;2 rnrn(1 表示 EXE,2 表示 DLL。) rnrn如果要执行增量生成,若直接按上面介绍的方法编辑资源,将会禁用增量生成并导致完全重新生成;因此,应采取其他方法: rnrn链接二进制文件以生成 MyApp.exe 清单文件。 rnrn将清单转换为资源文件。 rnrn以增量方式重新链接,将清单资源嵌入二进制文件中。 rnrnrn 使用控制台运行mt.exe,结果出现一个错误: rngeneral error 1010070:failer to laod and parse to manifest. rnrn 使用release编译依然出错,现在不知道怎么做了。rnrn mackz大侠说我需要一个manifest文件。默认向导生成的项目里都有的,我的可能不是向导生成的。参考自己修改一下就可以了,主要是程序名称改一下。rnrn 但是具体怎么做呢?我觉得现在程序的manifest文件没有错误啊。

没有更多推荐了,返回首页