当我试图用我的注册C ++ / ATL项目的32位版本
regsvr32 project.dll
我得到这个错误:
LoadLibrary("project.dll") failed - The specified module could not be found
project.dll是使用上的Visual Studio 10 ATL我的DLL建成。
64位版本注册的罚款。
我在想什么?
当我试图用我的注册C ++ / ATL项目的32位版本
regsvr32 project.dll
我得到这个错误:
LoadLibrary("project.dll") failed - The specified module could not be found
project.dll是使用上的Visual Studio 10 ATL我的DLL建成。
64位版本注册的罚款。
我在想什么?
我观察这个确切的同样的错误,但解决的办法是不安装可再发行。 所有依赖DLL存在任一项所述的系统1上的Depends.exe。
就我而言,KERNEL32.DLL的图标是微红色着色。 没了Depends.exe没有提供太多的解释,但周围挖透露,进口功能之一是从系统上的DLL失踪。 要查看导入的功能,请在树视图中相关的DLL和寻找正确的面板上的进口。 由PI栏才能看到失踪进口的红色图标。
在我的情况下,缺少的功能是没有我的悲伤目标操作系统中,Windows XP上存在的函数。 由于我的程序没有直接依赖于这个功能,我能够与脱身#define
荷兰国际集团在我的项目如下:
#define WINVER 0x0501
#define _WIN32_WINNT 0x0501
与这些宏编译说得那么有问题的功能在头未声明,并在加载时不会因此进口。 现在,我能够使用regsvr32
。 这当然是一个非常特殊的(和幸运)的情况下。 我并不依赖于进口或任何其他更新的API,这样我就可以逃脱重定向项目。 如果不是一个系统DLL,我就需要找到一个新的版本,这很容易导致需要更新依赖图的整个子树。 或者更糟的是,如果我依赖于进口的缺失,将需要一些严重的重构。
概括起来,这个错误消息2可以由以下问题引起:
1:除了IESHIMS.DLL和WER.DLL这显然是在这个古老工具的错误。
2:还是真的,在加载特定系统的DLL的任何问题
错误说明是误导在这种情况下。 系统找到你的DLL(project.dll),但你的DLL中的一个(或多个)的依赖性可能会丢失。
我刚装
Microsoft Visual C++ 2010 Redistributable Package
现在我可以安装DLL。
虽然这个工作,我不是太满意,这一点,因为我不想安装此包在客户端上,以便我的DLL通过他们的工作。