64 位 Win 上缺少 dll
我有一个 .net 应用程序,它使用一些 vc++ 编译的 Win32 dll。它在 32 位 Win 上运行良好,但在 64 位上存在问题:“无法加载 DLL 'xyz':找不到指定的模块。(HRESULT 异常:0x8007007E)”
使用依赖项遍历器我发现它错过了以下 dll:MSVCP100.DLL、MSVCR100.DLL、GDIPLUS.DLL、GPSVC.DLL、IESHIMS.DLL
如何我将它们安装到我的 64 位 Win 上吗?我应该把它们放在哪里?我应该注册它们吗?或者...?
请注意,我的项目是针对 x86 平台编译的,并且它作为 32 位应用程序从 Program Files (x86) 文件夹运行。我的 dll 在 Visual Studio 2010 中通过 Visual C++ 编译为 Win32。
请注意,由于其他原因,获得 64 版本的 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!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
整个过程应该是32位或64位的。如果无法在 64 位下编译所有依赖库,则需要在 32 位下运行 .NET 项目。为此,请创建 x86 配置(默认为任何 CPU)并在此配置中构建 .NET 项目。
您还需要在目标计算机上安装 VC++ 2010 可再发行软件包,并在您的情况下使用正确的位数 - x86。该软件包可以从 Microsoft 网站下载。
如果您的程序有安装包,则应将 VC++ 可再发行组件作为单个文件或合并模块添加到其中。
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.
正如 ALex Farber 指出的,您必须在目标计算机上安装一些运行时 dll:
As ALex Farber noted, you have to install some runtime dlls on the target machine: