2014-01-30 41 views
9

我面临着以下(相当常见的)问题“MSVCP110D.dll从计算机中缺少”:我正在我的程序在调试模式下在VS2010和/或VS2012,但在启动时崩溃,他说:修复问题

程序无法启动,因为您的 计算机丢失了MSVCP100D.dll。尝试重新安装程序来解决这个问题。

现在我发现了一些可能的解决方案,但他们没有为我工作:

  • 编译/ MTD而不是/ MDD:其实这确实解决了问题,但我不允许:我的程序是更大程序的一部分,并且/ MD [d]是强制性的。
  • 安装VS 2010 Redistributable package:这不起作用,因为我安装了VS 2012,所以这个安装程序告诉我:“在计算机上检测到新版本的Microsoft Visual C++ 2010 Redistributable。”
  • 找到并拖放一个MSVCP100D.dll版本到正确的目录:我不会将未知的DLL放入可能干扰其他事物的地方。
  • 最后的手段:重新安装VS2010/VS2012:可能,但它也意味着重新安装我需要的很多其他包和插件,如果不是绝对必要的话,我想避免这种情况。

有没有留下任何其他的选择吗?

+0

用/ MD而不是/ MDd编译。由于您似乎没有安装VS2010,因此不太可能产生任何效果。这是获取该文件所需的内容。或者你失去了它,不知何故。从另一台机器复制它。 32位版本进入c:\ windows \ syswow64,64位版本进入c:\ windows \ system32。在检查机器上的磁盘之后执行此操作,丢失文件永远不会是一个好兆头。 –

回答

-1

我有同样的问题,我发现原因是,我使用的DLL与VS2012在VS2013的项目编制。只需下载缺少的DLL,并将其放入我的链接器路径和wala中:程序运行。我从http://www.dll-files.com/下载它。

情况:我的计划是在工作中释放模式而不是在调试模式,因为它说的MSVCP110D.dll缺失。我的代码是一个opencv图像处理程序。我在VS2013项目选项中将缺少的dll放入opencv链接器路径中。

+8

诊断很好,解决方案不好。我建议您不要使用下载网站。 – slater

8

Visual Studio REDIST包永远不会部署CRT文件的DEBUG版本。这是的设计

用VS 2012或更高版本,部署CRT的DEUBG版本的最简单方法是在测试机上安装“远程调试工具”包。

对于VS 2012,最新的远程调试工具包是here

对于VS 2013,最新的远程调试工具包是here

另一个选择是只使用应用程序本地部署DLL(即将其复制到您的应用程序目录中)。再次这仅用于测试目的。为了实际部署应用程序,您需要使用CRT的非调试版本。

如果这个错误是在开发机器上发生的事情,但是,那么你还有其他问题,因为在VS 2012安装后,你应该有VS 2012 DEBUG CRT那台机器上。

UPDATE ::对不起,我希望将调试CRT DLL与远程调试器位和Direct3D 11调试器一起包含在远程调试工具包中。唉,事实并非如此。请参阅Preparing a Test Machine To Run a Debug Executable。您必须使用Program Files (x86) directory in \Common Files\Merge Modules中的MSM或从Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\并行复制DLL。 VS团队可能认为你已经这么做了,但我会建议他们将其推送到远程工具包中。

+3

嗯,不。安装VS 2012远程调试工具不会安装MSVCP100D.dll,并且不能解决问题。 – AnT

+0

''MSVCP100D.DLL''是VS 2010 CRT。你的意思是''MSVCP110D.DLL''? –

+0

是的,对不起。一个错字。我收到有关丢失“MSVCP110D.DLL”的错误消息。 – AnT

1

我有一个类似的问题(该项目在VS 2012做,但我跑VS2013),并解决它由:在VS2013

  1. 打开项目(或溶液)(或较新的一个)

  2. 打开项目菜单,选择“重定向项目”选项(这是第一个选项,但应用后,此选项消失)。

  3. 重建您的解决方案。

0

我是openCV和C++的新手,并且在Windows 7,32位平台上使用openCV 2.4.10与Visual Studio Express 2013相同的问题。如果我在不使用OpenCV的情况下制作了一个简单的程序,程序就运行了,但是当我使用OpenCV时,我得到了缺少的DLL错误。

This post使事情清楚:

我想我有这个问题是不是与我的Visual Studio,但我的OpenCV。 OpenCV是在需要MSVCP110.dll的Visual Studio版本上编译的。我本可以尝试使用VS2013的另一个版本的OpenCV或编译的OpenCV,但我时间不够。相反,我在其他地方找到了dll文件,并将其放在我的system32文件夹中(不确定是否推荐这个文件)。这解决了这个问题。不过,正如@slater提到的,由于安全问题,我不建议从外部网站下载dll。