在64位运丢失的DLLDLL

2023-09-03 07:32:13 作者:钢铁小伙伴

我有一个使用了一些VC ++编写的Win32 DLL的.NET应用程序。它的伟大工程在32位获胜,但在64位有一个问题:无法加载DLLXYZ:指定的模块找不到(从HRESULT异常:0x8007007E)。

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)"

使用依赖学步车,我发现它错过下面的dll文件:MSVCP100.DLL,MSVCR100.DLL,GDIPLUS.DLL,GPSVC.​​DLL,IESHIMS.DLL

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

我怎样才能将它们安装到我的64位赢?我应该在哪里放呢?我必须要注册呢?还是......?

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

请注意,我的项目编译为x86平台,它是从程序文件(x86)文件夹作为32位应用程序运行。我的DLL是通过Visual C ++在Visual Studio 2010 comiled是Win32。

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.

请注意,这是不可能完成的任务获得64版本的我因为一些其他原因的dll,所以它不会是一个解决方案。

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.

谢谢!

推荐答案

,整个过程应该是32或64位。如果无法在64位编译所有依赖库,则需要在32位上运行.NET项目。要做到这一点,创造的x86配置(默认为任何CPU),并在此配置构建.NET项目。

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.

您还需要在目标计算机上安装VC ++ 2010可再发行组件包,以正确的位数,你的情况 - 86。这个包可以从微软网站上下载。

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.

如果你的程序安装包,VC ++可再发行组件应该添加到它作为单个文件或合并模块。

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

 
精彩推荐
图片推荐