Falta MSVCP120d.dll

Cada vez que quiero comstackr mi proyecto de Visual Studio recibo el mensaje de que falta MSVCP120d.dll. Google no puede ayudarme Ya instalé algunos redistribuibles pero no ayudaron. También encontré esto:

Versión de depuración Msvcp120d.dll del tiempo de ejecución de C ++. No se permite la redistribución.

http://msdn.microsoft.com/en-us/library/windows/hardware/dn448963(v=vs.85).aspx

A partir de los comentarios, el problema fue causado por el uso de dlls que se construyeron con Visual Studio 2013 en un proyecto comstackdo con Visual Studio 2012. La razón de esto fue una biblioteca de terceros llamada las carpetas que contienen los dlls vc11, vc12. Hay que tener cuidado con cualquier sistema que use la versión del comstackdor (menos de 4 dígitos) ya que no coincide con la versión de Visual Studio (excepto Visual Studio 2010).

  • vc8 = Visual Studio 2005
  • vc9 = Visual Studio 2008
  • vc10 = Visual Studio 2010
  • vc11 = Visual Studio 2012
  • vc12 = Visual Studio 2013
  • vc14 = Visual Studio 2015

Las DLL de tiempo de ejecución de Microsoft C ++ usan un código de 2 o 3 dígitos también basado en la versión del comstackdor y no en la versión de Visual Studio.

  • MSVCP80.DLL es de Visual Studio 2005
  • MSVCP90.DLL es de Visual Studio 2008
  • MSVCP100.DLL es de Visual Studio 2010
  • MSVCP110.DLL es de Visual Studio 2012
  • MSVCP120.DLL es de Visual Studio 2013
  • MSVCP140.DLL es de Visual Studio 2015

Me he encontrado perdiendo el tiempo buscando una solución para esto, y sospecho que lo volveré a hacer en el futuro. Así que aquí hay una nota para mí y para otros que podrían encontrarlo útil.

Si falta MSVCP120.DLL, eso significa que no ha instalado los paquetes redistribuibles de Visual C ++ para Visual Studio 2013 (x86 y x64). Instalar eso, reiniciar y debe encontrar este archivo en c: \ Windows \ System32.

Ahora si falta MSVCP120D.DLL, esto significa que la aplicación que está intentando ejecutar está construida en modo Debug. Como OP ha mencionado, la versión de depuración del tiempo de ejecución NO es distribuible.

¿Asi que que hacemos?

Bueno, hay una opción que conozco: vaya a la configuración de Depuración de su proyecto> C / C ++> Generación de código> Biblioteca de tiempo de ejecución y seleccione Depuración multiproceso (/ MTd). Esto enlazará estáticamente MSVCP120D.dll en su ejecutable.

También hay una solución rápida si solo quiere obtener algo rápidamente: copie el MSVCP120D.DLL de la carpeta sys32 (el mío es C: \ Windows \ System32). Es posible que también necesite MSVCR120D.DLL.

Adición a la solución rápida: para reducir las conjeturas, puede usar el caminante de dependencias . Abra su aplicación con el buscador de dependencias, y verá qué archivos DLL se necesitan.

Por ejemplo, mi aplicación más reciente fue desarrollada en Visual Studio 2015 (máquina con Windows 10 de 64 bits) y la estoy dirigiendo a una máquina con Windows XP de 32 bits. Utilizando el walker de dependencias, mi aplicación (ver captura de pantalla) necesita los siguientes archivos:

  • opencv _ *. dll < - mis propios archivos dll (también pueden tener dependencia)
  • msvcp140d.dll < - SysWOW64 \ msvcp140d.dll
  • kernel32.dll < - SysWOW64 \ kernel32.dll
  • vcruntime140d.dll < - SysWOW64 \ vcruntime140d.dll
  • ucrtbased.dll < - SysWOW64 \ ucrtbased.dll

Además de los archivos opencv * que he creado, también necesitaría copiar los archivos del sistema de C: \ Windows \ SysWow64 (System32 para 32 bits).

De nada. 🙂

Tengo el mismo problema con usted cuando implemente OpenCV 2.4.11 en VS 2015. Intenté resolver este problema por tres métodos, uno por uno, pero no funcionaron :

  1. descargue MSVCP120.DLL en línea y agréguelo a la ruta de Windows y a la ruta del archivo de bin OpenCV
  2. instalar paquetes redistribuibles de Visual C ++ para Visual Studio 2013 tanto x86 como x86
  3. ajustar el modo de depuración. Vaya a Configuración> C / C ++> Generación de código> Biblioteca de tiempo de ejecución y seleccione Depuración multiproceso (/ MTd)

Finalmente resolví este problema volviendo a instalar VS2015 con la selección de todas las opciones que se pueden instalar , ocupa mucho espacio pero realmente funciona.

Descargué msvcr120d.dll y msvcp120d.dll para la msvcp120d.dll de 32 bits y luego los puse en la carpeta Debug de mi proyecto. Funcionó bien (Mi computadora es una versión de 64 bits)

Mi problema fue con las comstackciones x64 desplegadas en una máquina de prueba remota. Encontré las versiones x64 de msvp120d.dll y msvcr120d.dll en

 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\Debug_NonRedist\x64\Microsoft.VC120.DebugCRT