跟踪应用程序中的 COM 对象错误

发布于 2024-10-08 13:10:27 字数 104 浏览 3 评论 0原文

我正在使用一个应用程序,它运行完美。几个月没有使用它后,我尝试运行它,但它不起作用。它显示一个消息框,指出它无法实例化 COM 对象。

有谁知道如何跟踪 COM 对象中的错误吗?

I was using an application and it was working perfect. After some months of not using it, I tried to run it and it doesn't work. It shows a message box saying that it cannot instance a COM object.

Do any know how to track errors in COM objects?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

天煞孤星 2024-10-15 13:10:27

您可以使用 ProcessMonitor 并尝试查找可能不正确的注册表项。
另一种选择是使用 http://www.moduleanalyzer.com,它拦截显示所有创建的 COM 对象的 CoCreateInstance 并返回值。

You can use ProcessMonitor and try to find the registry key that may be incorrect.
The other option is to use http://www.moduleanalyzer.com, it intercepts CoCreateInstance showing all created COM objects and the return values.

憧憬巴黎街头的黎明 2024-10-15 13:10:27

在 COM 对象 DLL 上运行 Depends 工具以验证它是否具有所有必需的 dll,然后重新注册 COM dll/exe。

来自调试/日志的任何 HRESULTS 吗?公寓户型有变化吗?

一旦设置了公寓类型,就无法更改。因此,如果该对象无法使用其中一种模型,并且您尝试共同创建它,它将失败。这就是为什么你从不从 DLL 主线程内部调用 CoInit 的原因。

Run Depends tool on COM object DLL to verify it has all the necessary dlls, re-register the COM dll/exe.

Any HRESULTS from debugging/logs? Any changes in apartment models?

You cannot change the apartment type once you've set one. So if the object cannot use one of the models and you try to CoCreate it, it will fail. That's why you never call CoInit from inside DLL main thread.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文