提示没有找到MSVCR80D.dll

R6034

An application has made an attempt to load the C runtime library without using a manifest.
This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest.
For more information, see the "Visual C++ Libraries as Shared Side-by-Side Assemblies"topic in the product documentation.

这是由于manifest文件没有被正确嵌入EXE中所导致的。工程建立后默认是设定要嵌入manifest文件的,如果该文件没有被正确嵌入,那么就会报这个错误。当然如果设置生成清单(在工程属性、配置属性、连接器下的清单文件选项里),不嵌入清单(就在下面的清单工具的输入和输出选项里),那么当把manifest删掉后再运行程序,也会报这个错误。网上还看到说FAT32文件系统嵌入清单的时候需要开启下面的选项,不然也会异常。不过我用着FAT32没这个问题。倒是最近内存低的时候系统会有点异常,所以碰到了这个问题。

还看到一个德国的牛人解释:

http://blog.kalmbachnet.de/

Using the VC 2005 shared CRT/MFC (DLL) without a manifest is not supported!
If you build your app with VC2005 and you accidently have disabled the embedding of the manifest file (or deleted the separate appname.exe.manifest file), you will get an error on XP and later!

This has to do with the checking for a valid manifest of the EXE inside the CRT/MFC DLLs “DllEntry” (via a call to _check_manifest). If the OS supports manifests (or better Side-By-Side assemblies/DLLs) the CRTs´ DLL forces the check of the EXEs´ manifest. If there is no (valid) manifest, then the DLL refuses to load (returns 0) and therefor the EXE cannot be started. It might display the following error message (or similar):
R6034
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application’s support team for more information.

But in the following cases the manifest checking inside the CRT-DLL is not done:

Pre-fusion OS (FindActCtxSectionStringW not found in kernel32.dll)
Loaded by instrumented-mscoree.dll (mscoree.dll and pgort80.dll is already loaded)
The path returned with GetModuleFileNameW of the DLL is longer than 8000 characters
The path to the DLL, returned by GetLongPathName is longer than 8000 characters

解决方案

一、

1. 微软对于这个问题应该也有处理,不过感觉不是很人性化。在“属性->配置属性->清单工具->常规“下有一个”使用FAT32解决办法,把它选成是,就可以了。(注意:一定要先配置这个选项,然后再编译工程,要不然还是不好用:) 当然了
2. 找到你的工程的文件夹,),找到其下的myproject/myproject/Debug/ myproject.rec,把它删掉(删掉整个Debug目录也可以),重新编译,搞定!

二、

看到有人写了个程序向导:
1) 首先找到你的vs.net安装目录(如我的是E:/Program Files/Microsoft Visual Studio 8),定位到Microsoft Visual Studio 8/VC/VCWizards/AppWiz/Generic/Application文件夹,备份这个Application文件夹,不然一会你自己改 咂了我可不管啊:)。
2) 打开html/2052,看到两个文件了吧,就那个AppSettings.htm了,这个管着你的那个配置向导的界面,用UE(不要告诉我你不知道ue啥东西,baidu it)打开,在266行“ </SPAN>”后回车,然后插入一下内容:
<!-- this (hua)section is added by HUA. -->
<br><br><br><br><br>

<span class="itemTextTop" id="FILE_SYSTEM_SPAN" title="">选择你所使用的文件系统:

<P CLASS="Spacer"> </P>

<INPUT TYPE="radio" CLASS="Radio" checked onPropertyChange="" NAME="filesystem" ID="FAT32" ACCESSKEY="F" TITLE="FAT32">
<DIV CLASS="itemTextRadioB" ID="FAT32_DIV" TITLE="FAT32">
<LABEL FOR="FAT32" ID="FAT32_LABEL">FAT32(<U>F</U>)</LABEL>
</DIV>

<BR>

<INPUT TYPE="radio" CLASS="Radio" onPropertyChange="" NAME="filesystem" ID="NTFS" ACCESSKEY="N" TITLE="NTFS">
<DIV CLASS="itemTextRadioB" ID="NTFS_DIV" TITLE="NTFS">
<LABEL FOR="NTFS" ID="NTFS_LABEL">NTFS(<U>N</U>)</LABEL>
</DIV>
</span>
<!-- end of (hua)section -->
好,保存关闭,这个改完了,准备下一个。

3) 打开scripts/2052,这里就一个文件,ue打开它,找到138行“ var bATL = wizard.FindSymbol("SUPPORT_ATL");”其后回车,插入如下内容:
// this (hua)section is added by HUA.
var MFTool = config.Tools("VCManifestTool");
MFTool.UseFAT32Workaround = true;
// end of (hua)section
好,继续找到210行(源文件的210,你加了上边的语句就不是210了:)“ config = proj.Object.Configurations.Item("Release");”注意这次要在这行“前边”加如下内容:
// this (hua)section is added by HUA.
if(bFAT32)
{
var MFTool = config.Tools("VCManifestTool");
MFTool.UseFAT32Workaround = true;
}
// end of (hua)section

因为没有msvcr80.dll
可以改一下编译选项 多线程dll(/MD)改成多线程(MT)这样就静态链接,
也可以从你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装。”

感觉以下两种解决办法是比较方便的:
方法一:
在C:/Program Files/Microsoft Visual Studio 8/VC/redi
st/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 下找到了下列文件:

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。

方法二:
修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

在vc6下调用vs2005的动态链接库,开始弹出“没有找到MSVCR80D.dll“的对话框,
安上述的第二种方法改行不通,安第一种方法会弹出如下文字的警示窗口
An application has made an attempt to load the C runtime library without using a manifest. This is an unsupported way to load Visual C++ DLLs. You need to modify your application to build with a manifest.
for more information, see the "Visual C++ Libraries as Shared Side-by-Side Assemblies"topic in the product documentation.

Microsoft的解决方案:http://msdn.microsoft.com/zh-cn/library/ms235560(VS.80).aspx

c/c++ 运行时: R6034相关推荐

  1. Go 运行时(go runtime)的含义

    go 运行时,也称为 go runtime.其本身就是每个 go 程序的一部分,它会跟你的源码一起编译并连接到目标程序中.即便你只是写了一个 hello world 程序,这个程序中也包含了 runt ...

  2. Deep Learning部署TVM Golang运行时Runtime

    Deep Learning部署TVM Golang运行时Runtime 介绍 TVM是一个开放式深度学习编译器堆栈,用于编译从不同框架到CPU,GPU或专用加速器的各种深度学习模型.TVM支持来自Te ...

  3. “ compiler-rt”运行时runtime库

    " compiler-rt"运行时runtime库 编译器-rt项目包括: • Builtins-一个简单的库,提供了代码生成和其他运行时runtime组件所需的特定于目标的低级接 ...

  4. CUDA运行时 Runtime(四)

    CUDA运行时 Runtime(四) 一. 图 图为CUDA中的工作提交提供了一种新的模型.图是一系列操作,如内核启动,由依赖项连接,依赖项与执行分开定义.这允许定义一次图形,然后重复启动.将图的定义 ...

  5. CUDA运行时Runtime(三)

    CUDA运行时Runtime(三) 一.异步并发执行 CUDA将以下操作公开为可以彼此并发操作的独立任务: 主机计算: 设备计算: 从主机到设备的内存传输: 从设备到主机的存储器传输: 在给定设备的存 ...

  6. CUDA运行时 Runtime(二)

    CUDA运行时 Runtime(二) 一. 概述 下面的代码示例是利用共享内存的矩阵乘法的实现.在这个实现中,每个线程块负责计算C的一个方子矩阵C sub,块内的每个线程负责计算Csub的一个元素.如 ...

  7. CUDA运行时 Runtime(一)

    CUDA运行时 Runtime(一) 一. 概述 运行时在cudart库中实现,该库通过静态方式链接到应用程序库cudart.lib和 libcudart.a,或动态通过cudart.dll或者lib ...

  8. java运行时_java编译时与运行时概念与实例详解

    Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只 ...

  9. ASP.NET HTTP 运行时

    ASP.NET HTTP 运行时 一个请求从 URL 字符串到 HTML 代码的"漫长曲折"之路 Dino Esposito Wintellect 2003年7月10日 摘要:本文 ...

  10. crt 运行时库dll跨模块传递crt对象,出现的崩溃问题

    参考链接: https://blog.csdn.net/weixin_30653097/article/details/96512399 (讲述了,运行时库在启动的时候在exe或dll入口点之前就使用 ...

最新文章

  1. 201621123028《Java程序设计》第一周学习总结
  2. Python 执行js的2种解决方案-乾颐堂
  3. ng build command not found(ng命令到底是什么鬼)
  4. 【渝粤题库】国家开放大学2021春1703农村发展理论与实践题目
  5. python配置opencv镜像安装
  6. Angular JS 增删改查(弹框修改)
  7. 第六章:thymeleaf页面模版-1. 信息输出
  8. 初学者参考C#中操作XML修改完整版
  9. Android 柱状图(自定义View)
  10. python plot 增加标记线_Python可视化| matplotlib04-掌握标记和线型的使用,一文,marker,linestyle...
  11. [C# 网络编程系列]:TCP编程
  12. Ubuntu打包发布qt程序
  13. Cplex20.1版本bin包Linux安装过程
  14. Python安装graphics库
  15. 目前航信版开票软件自身导入文本数据的问题
  16. 安卓和iOS测试的区别
  17. 在C#中用一个按钮控制斑马zebra条码打印机进行打印
  18. mysql 怎么区分大小写_MYSQL区分大小写
  19. 腾讯+android+hotfix,发布到安卓平台报这个错误,xLua exception : xlua.access, no field __Hotfix0_Update...
  20. 编写一个 spootboot 程序,有二个方法,一个问早上好,一个说再见

热门文章

  1. 在Android中调用图片、视频、音频、录音、拍照
  2. 笔试 - 深信服 - 大数据开发工程师
  3. 子组件向父组件传值($emit)
  4. AngularJs仿淘宝购物车
  5. selenium定位svg标签下元素
  6. C++Socket接口编程
  7. [VCAP5] VCAP5-DCA DCD学习资料汇总 存储(VDCA510为主)
  8. 华测服务器进不去系统,华测网络数据查询系统
  9. Fiddler Classic使用教程
  10. 集电极开路输出和漏极开路输出