MSVCP100.dll not found error even when it is installed

Bhavneet Singh Bajwa picture Bhavneet Singh Bajwa · Jan 22, 2014 · Viewed 14.3k times · Source

i get the following error when i try to run an exe on a x64 machine that was build for x86 CPU using the MC++ compiler (vs2010) on a x86 machine:

The program can’t start because MSVCR100.dll is missing from your computer.

i already have visual studio 2012 (along with Visual C++ 2012 Update 4 redistributable- both x86 and x64) installed on this second (x64) machine.

A quick search tells me the "MSVCR100.dll" is already present in "C:\Windows\System32".

i tried to install the Microsoft Visual C++ 2010 Redistributable but it exited with an error telling me that a superior version is already installed.

Please guide me what i am doing wrong. :)

Answer

Mohammad Amin Bandekhoda picture Mohammad Amin Bandekhoda · Jul 26, 2015

Firstly, in 64-bit versions of Windows, 32-bit system executables and application extension files (aka DLLs) are placed in %systemroot%\SysWOW64 instead of %systemroot%\System32 (which, somewhat counterintuitively, contains 64-bit versions in a 64-bit Windows). So the SysWOW64 folder has to be checked for the x86/32-bit MSVC(++) DLLs.

Secondly, though installation of the corresponding visual studio version on the target machine or having accompanied the distributed program with the required C(++) DLLs should, theoretically, solve the problem, it's not necessary. It's sufficient to have the corresponding MSVC++ redistributable package installed (i.e. e.g. Microsoft Visual C++ 2010 x86 redistributable package in this particular case).

Notes:

  1. The aforementioned info are theoretically correct but damaged Windows installations or ... may not conform.
  2. Including the C++ DLLs with the distributed program is acceptable (and possibly a conservative but correct decision) but installing a Visual Studio version solely to be able to use the DLLs in question definitely isn't.
  3. As a side note, C++ redistributable packages don't install the debug versions of the DLLs so installation of or access to a corresponding Visual Studio version is necessary for running debug-compiled applications.