c++ - 如何识别缺失的依赖项

标签 c++ com dependencies

我们有一个遗留的第 3 方程序在尝试执行某些功能时失败并出现错误“类未注册”。有没有办法告诉它正在寻找什么类(class)?有时它会显示“灾难性错误”。

静态地尝试了 Dependency Walker 和分析,Kernal32.exe 错误。我猜这是实例化失败。它没有显示任何缺失的依赖项。

ProcessMon 没有显示任何访问注册表或特定文件路径的失败尝试。

花了几天时间使用调试器和工具试图弄清楚它是什么文件。我们有一个正在运行的生产系统,我们可以使用非管理员用户帐户访问它。

如果有区别的话,第 3 方应用程序是用 Delphi 编写的。我们的调用应用程序是 C++。

更新: 使用 Process Monitor从 Sysinternals 和一个过滤器来缩小自然注册表读取失败的异常,我能够找到丢失的 GUID 并注册相应的 dll。

最佳答案

很有可能是 COM 问题。 Here有一篇关于如何调试它的文章。基本上,使用 RegMon。它将显示 COM 读取注册表项,尝试查找类提供程序。

关于c++ - 如何识别缺失的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607402/

相关文章:

c++ - 为什么 CoUninitialize 在退出时会导致错误?

c# - 注入(inject)依赖项的正确方法

java - 依赖 Maven 项目的测试失败

android - 如何在 chenge 构建变体 flavor 时更改自动 settings.gradle

c++ - 在 C++ 中更新 vector 或列表的多个调用异步

c++ - 使用枚举名称

c++ - 海森堡 : WinApi program crashes on some computers

php - 如何在ubuntu中使用php脚本编译c程序

internet-explorer - 方法调用失败,因为 [System.Object[]] 不包含名为 'Click' 的方法

c# - 在 .NET Core 2.0 中使用 COM 对象