开发者

Missing dlls on 64 bit Win

开发者 https://www.devze.com 2023-04-07 17:27 出处:网络
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 fou

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开发者_StackOverflow中文版. 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!


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.


As ALex Farber noted, you have to install some runtime dlls on the target machine:

  • The .NET runtime with the right version, here the 4.0,
  • Visual Studio redistributable package (I'm not sure of this one, it should be for C++ applications only but may be worth a try if .NET is not enough)
0

精彩评论

暂无评论...
验证码 换一张
取 消