7

当我使用“regsvr32 foo.dll”时,我收到“找不到指定的模块”错误。

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

我已经指定了完整路径,但它仍然不起作用。有任何想法吗????

4

4 回答 4

12

如果foo.dll有依赖项,则可能会发生这种情况bar.dll,但实际上bar.dll找不到。

尝试使用depends.exeMSVC 来检查依赖项foo.dll并查看是否缺少任何依赖项。

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

于 2009-07-29T11:42:01.077 回答
4

在 64 位操作系统上,Dependency Walker 对我来说没有任何信息。并FileMon已被进程监视器取代(请参阅https://docs.microsoft.com/en-us/sysinternals/downloads/procmon以下载该实用程序)。以下是我如何使用 Process Monitor 找到丢失的引用:

过滤器对话框的 ProcMon 工具栏

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

ProcMon 过滤器对话框

Process Name将的添加regsvr32.exe到过滤器列表并删除所有PID过滤器。

ProcMon 清除工具栏按钮

清空名单,...

ProcMon 捕获工具栏按钮

...打开捕获,如果它尚未打开。

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

缺少参考线

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

于 2017-10-12T17:41:00.057 回答
0

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

于 2021-07-26T14:48:25.947 回答
0

在某些版本的 Windows10 中,要由 SYSWOW64\REGSVR32 注册的文件必须驻留在SYSWOW64中

于 2021-10-10T10:29:52.063 回答