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

cfi*_*her 7 windows com regsvr32

当我使用"regsvr32 foo.dll"时,我收到"无法找到指定的模块"错误.

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

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

ars*_*ars 11

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

尝试使用depends.exeMSVC检查依赖关系,foo.dll看看是否有任何遗漏.

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


erg*_*ack 6

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

过滤器对话框的 ProcMon 工具栏

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

ProcMon 过滤器对话框

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

ProcMon 清除工具栏按钮

清空列表,...

ProcMon 捕获工具栏按钮

...打开捕获(如果尚未打开)。

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

缺少参考线

regsvr32加载 DLL后查找丢失的引用。