Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MSVCP100.dll not found error even when it is installed

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. :)

like image 446
Bhavneet Singh Bajwa Avatar asked Jan 22 '14 13:01

Bhavneet Singh Bajwa


People also ask

Can't start because MSVCP100 dll is missing?

Uninstall and reinstall the latest Microsoft Visual C++ Redistributable Package. The next method to solve the "Program Can't Start because MSVCP100. dll is Missing" problem, is to remove all the installed versions of Microsoft Visual C++ Redistributable Package and then to download and install the latest version.

Where should I put MSVCP100 dll?

In the vast majority of cases, the solution is to properly reinstall msvcp100. dll on your PC, to the Windows system folder. Alternatively, some programs, notably PC games, require that the DLL file is placed in the game/application installation folder.


2 Answers

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.
like image 55
Mohammad Amin Bandekhoda Avatar answered Oct 24 '22 20:10

Mohammad Amin Bandekhoda


Your application needs the dll for VS2010. you should place MSVCR100.dll and MSVCP100.dll from your x86 machine beside your exe. You can also install VS2010 alongside your current VS2012. then you should also install the Service Pack1 for VS2010 to work properly. After installing VS2010 you have access to both mentioned dlls and also you probably don't need to copy them to your exe directory.

like image 3
Nejat Avatar answered Oct 24 '22 20:10

Nejat