64位Win上丢失的dll

Missing dlls on 64 bit Win

本文关键字:dll Win 64位      更新时间:2023-10-16

我有一个。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平台编译的,它是在Program Files (x86)文件夹中作为32位应用程序运行的。我的dll是在Visual Studio 2010中通过Visual c++编译为Win32的。

请注意,由于其他一些原因,我不可能得到64版本的dll,所以这不是一个解决方案。

谢谢!

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

您还需要在目标计算机上安装vc++ 2010可重新发布包,在您的情况下- x86。此软件包可从Microsoft网站下载。

如果你的程序有安装包,vc++可重新发布文件应该作为单个文件或合并模块添加到其中。

正如ALex Farber所指出的,您必须在目标机器上安装一些运行时dll:

  • .NET运行时的正确版本,这里是4.0,
  • Visual Studio可重新发布包(我不确定这个,它应该只适用于c++应用程序,但如果。net不够,可能值得一试)