Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Missing dlls on 64 bit Win

Tags:

c++

.net

dll

I have a .net application that uses some vc++ compiled Win32 dlls. It works great on a 32 bit Win, but on 64 bit there is a problem: "Unable to load DLL 'xyz': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"

Using dependency walker I found it misses the following dlls: MSVCP100.DLL, MSVCR100.DLL, GDIPLUS.DLL, GPSVC.DLL, IESHIMS.DLL

How can I install them to my 64 bit Win? Where should I put them? Should I register them? Or...?

Note, my project is compiled for x86 platform and it is ran from Program Files (x86) folder as a 32 bit app. My dlls are comiled as Win32 via Visual C++ in Visual Studio 2010.

Note, that it is mission impossible to get 64 version of my dlls because of some other reasons, so it would not be a solution.

Thanks!

like image 581
Tom Avatar asked Sep 27 '11 11:09

Tom


1 Answers

The whole process should be 32 or 64 bit. If you cannot compile all dependency libraries in 64 bit, you need to run .NET project in 32 bit. To do this, create x86 configuration (default is Any CPU) and build .NET project in this configuration.

You also need to install VC++ 2010 redistributable package on destination computer, with correct bitness, in your case - x86. This package can be downloaded from Microsoft WEB site.

If your program has installation package, VC++ redistributable should be added to it as single file or as merge modules.

like image 80
Alex F Avatar answered Sep 28 '22 08:09

Alex F