Exception 如何跟踪COM对象异常?

Exception 如何跟踪COM对象异常?,exception,com,dll,trace,Exception,Com,Dll,Trace,我有一个带有一些COM对象的DLL。有时,此对象会崩溃,并在Windows事件日志中使用大量十六进制信息注册错误事件。我不知道为什么会发生这种情况 那么,如何跟踪这些COM对象异常呢?第一步是查找失败代码的十六进制值(例如E_Fail 0x80004005)。我真的很幸运,在谷歌上发布了这个值,以了解错误代码的含义 然后,我只是使用试错法来尝试隔离代码中失败的位置,以及失败的根本原因 第一步是查找故障代码的十六进制值(例如E_Fail 0x80004005)。我真的很幸运,在谷歌上发布了这个值,

我有一个带有一些COM对象的DLL。有时,此对象会崩溃,并在Windows事件日志中使用大量十六进制信息注册错误事件。我不知道为什么会发生这种情况


那么,如何跟踪这些COM对象异常呢?

第一步是查找失败代码的十六进制值(例如E_Fail 0x80004005)。我真的很幸运,在谷歌上发布了这个值,以了解错误代码的含义


然后,我只是使用试错法来尝试隔离代码中失败的位置,以及失败的根本原因

第一步是查找故障代码的十六进制值(例如E_Fail 0x80004005)。我真的很幸运,在谷歌上发布了这个值,以了解错误代码的含义


然后,我只是使用试错法来尝试隔离代码中失败的位置,以及失败的根本原因

如果您只想快速找到错误代码的含义,可以使用Visual Studio附带的“错误查找”工具(详细信息)。输入十六进制值,它将为您提供描述该错误代码的字符串


当然,一旦你知道了这一点,你仍然需要弄清楚为什么会发生这种情况。

如果你只是想要一种非常快速的方法来找出错误代码的含义,你可以使用Visual Studio附带的“错误查找”工具(详细信息)。输入十六进制值,它将为您提供描述该错误代码的字符串


当然,一旦你知道了这一点,你仍然需要找出它发生的原因。

查找错误(hresult)代码的一个好方法是hresult Plus或welt.exe(Windows错误查找工具)


我在COM类中使用内部日志记录来查看发生了什么。此外,一旦可执行文件加载了COM类,您可以将VS调试器附加到该类,并使用断点、监视和所有有趣的东西调试COM代码。

查找错误(hresult)代码的一个好方法是hresult Plus或welt.exe(Windows错误查找工具)


我在COM类中使用内部日志记录来查看发生了什么。此外,一旦可执行文件加载了COM类,您就可以将VS调试器附加到该类,并使用断点、监视和所有有趣的东西调试COM代码。

COM对象不会引发异常。它们返回HRESULT,其中大多数表示失败。因此,如果您正在寻找相当于异常堆栈跟踪的对象,那么您就不走运了。您必须手动浏览代码并找出发生了什么。

COM对象不会抛出异常。它们返回HRESULT,其中大多数表示失败。因此,如果您正在寻找相当于异常堆栈跟踪的对象,那么您就不走运了。您必须手工浏览代码并找出发生了什么