2011-09-27 154 views
7

我有一个.net应用程序,它使用了一些vC++编译的Win32 dll。它在32位Win上效果很好,但在64位上存在一个问题:“无法加载DLL'xyz':找不到指定的模块(异常来自HRESULT:0x8007007E)”64位缺少dll Win

使用依赖关系walker我发现它错过了以下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.

请注意,由于其他原因,无法获得我的dll的64版本,因此它不会是一个解决方案。

谢谢!

+0

IESHIMS在我编译的每个项目中都缺失。不知道为什么。 – meawoppl

回答

10

整个过程应该是32位或64位。如果无法以64位编译所有依赖库,则需要以32位运行.NET项目。为此,创建x86配置(默认为Any CPU)并在此配置中构建.NET项目。

在您的情况下,您还需要在目标计算机上安装VC++ 2010可再发行组件包,正确的位数 - x86。该软件包可以从Microsoft WEB站点下载。

如果您的程序有安装包,应将VC++可再发行组件添加为单个文件或合并模块。

+0

所有内容都是以x86编译的,这不是问题。问题是这些DLL – Tom

+0

谢谢。 VC++ 2010可再发行组件包有所帮助。 – Tom