Regsvr32无法在当前文件夹中找到dll

时间:2009-07-29 11:27:15

标签: windows com regsvr32

当我使用“regsvr32 foo.dll”时,我得到一个“指定的模块不能 发现“错误。

由于regsvr32无法找到,导致错误 该文件,即使它是当前文件夹。

我已经指定了完整路径,但它仍然无法正常工作。任何想法????

3 个答案:

答案 0 :(得分:11)

如果foo.dllbar.dll具有依赖性并且实际上bar.dll无法找到,则会发生这种情况。

尝试使用MSVC中的depends.exe检查foo.dll的依赖关系,看看是否有任何遗漏。

另一种选择是下载并运行FileMon。然后再次运行regsvr32,查看找不到的文件/模块。这绝对应该追踪它。

答案 1 :(得分:2)

在64位操作系统上,Dependency Walker对我没有任何意义;并且FileMon已被Process Monitor取代(请参阅https://docs.microsoft.com/en-us/sysinternals/downloads/procmon下载该实用程序)。以下是我使用Process Monitor找到缺少的引用的方法:

ProcMon Toolbar for the Filter Dialog

从工具栏或菜单中打开过滤器对话框。

ProcMon Filter Dialog

Process Name regsvr32.exe添加到过滤器列表中,然后移除所有PID过滤器。

ProcMon Clear Toolbar Button

清除列表,......

ProcMon Capture Toolbar Button

...打开捕捉,如果它还没有打开。

从控制台窗口运行regsvr32.exe命令。完成后,您可能希望关闭捕获。

missing reference lines

regsvr32加载DLL之后查找缺少的引用。

答案 2 :(得分:0)

就我而言,当 DLL(实际上是传统的 VB OCX)在 SYSTEM32 中时,REGSVR32 声称“找不到文件...”。将它们移动到另一个目录后 REGSVR32 成功。

相关问题