亡羊补牢——出现系统丢失MSVCR120d.dll、MSVCP120d.dll丢失的问题

电脑配置环境描述:WIN10+VS2015+OpenCV 3.4.1 ×86Debug编译环境

问题描述

OpenCV高版本只能有×64版本的,为了实用32位编译平台自己编译了一个32位的OpenCV库,适用最高VS版本是VS2013,一直用的是release模式。结果今天第一次用debug模式出现了如标题所示问题,经过一番寻觅发现了出现问题的原因和解决方案。

问题产生的主要原因是vs2012编译了一个用vs2013生成的dll,是在选择第三方库时选择vc版本时出现的问题,dll文件和VS2015相关匹配情况如下。

  • vc8 = Visual Studio 2005

  • vc9 = Visual Studio 2008

  • vc10 = Visual Studio 2010

  • vc11 = Visual Studio 2012

  • vc12 = Visual Studio 2013

  • MSVCP80.DLL is from Visual Studio 2005

  • MSVCP90.DLL is from Visual Studio 2008

  • MSVCP100.DLL is from Visual Studio 2010

  • MSVCP110.DLL is from Visual Studio 2012

  • MSVCP120.DLL is from Visual Studio 2013 

  • (MSVCR.dll的情况类似)

换句话说,就是人家OpenCV专用匹配的VS和你电脑上的VS版本不匹配。这也就解释了我心头的一个疑惑,就是如果说一个OpenCV只支持某几个VS版本,那我其他的VS版本是不是就不能用这个库了呢?答案是当然可以用,只不过需要"添油加醋一番",给你的电脑加上几个dll。

解决方案

首先要明白一个概念:64系统下,system32文件夹存放的dll是64位dll,syswow64文件夹存放的dll是32位dll。这一点很容易弄混淆。

那么第一个解决方案就是:那么假设你得到了缺失的这两个文件,(在32位编译环境中)那么就应该把它放在syswow64下,而不是system32。

第二个解决方案:既然MSVCR120.dll和MSVCD120.dll是VS2013的家伙,那就安装一个VS2013自然会自动安装。

第三个解决方案: 换一个适合自己IDE的OpenCV版本。

注:文件的下载请参考作者的资源,传送门https://download.csdn.net/download/coldwindha/10635375

附加解释

这两个文件到底代表什么意思,有什么用?
msvcr120.dll中: MS = Microsoft  V = Visual  C = C program language  R = Run-time  120 = Version 

msvcp120.dll中: MS = Microsoft  V = Visual  CP = C++  120 = version 
msvcr120d.dll和msvcp120d.dll是 上述文件的debug版本 。
release版本dll是vcredist_x86.exe和vcredist_x64.exe安装的(x86安装到syswow64,x64安装到system32)。 
debug版本dll是vs2013安装的(32位dll安装到syswow64,64位dll安装到system32)。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
本文件能够完美解决系统中缺失msvcr120d.dll文件等问题,太平洋下载中心提供msvcr120d.dll文件官方下载。使用前请详细阅读msvcr120d.dll丢失修复方法。 msvcr120d.dll使用方法: 方法一 一、如果在运行某软件或编译程序时提示缺少、找不到msvcr120d.dll等类似提示,您可将从太平洋下载中心下载来的msvcr120d.dll拷贝到指定目录即可(一般是system系统目录或放到软件同级目录里面),或者重新添加文件引用。 二、将软件包下载下来后,先将其解压(一般都是rar压缩包), 然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。 三、直接拷贝系统对应的msvcr120d.dll系统目录里: 1、Windows 95/98/Me系统,将msvcr120d.dll复制到C:\Windows\System目录下。 2、Windows NT/2000系统,将msvcr120d.dll复制到C:\WINNT\System32目录下。 3、Windows XP/WIN7/win10系统(64位系统对应64位dll文件,32位系统对应32位dll文件),将msvcr120d.dll复制到C:\Windows\System32目录下。 4、如果您的系统是64位的请将32位的dll文件复制到C:\Windows\SysWOW64目录。 四、打开"开始-运行-输入regsvr32 msvcr120d.dll",回车即可解决。希望太平洋下载中心为您提供的msvcr120d.dll对您有所帮助。 方法二 通过太平洋下载中心下载dll的朋友,可将下面的代码保存为“注册.bat“,放到dll文件同级目录(只要在同一个文件夹里面有这两个文件即可),双击注册.bat,就会自动完成msvcr120d.dll注册(win98不支持)。 下面是系统dll版本对应的注册bat文件(64位的系统对应64位dll文件,32位系统对应32位的dll文件,如果64位的系统安装32位的dll文件,请将下面的system32替换为SysWOW64即可。)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值