【发布时间】:2010-05-28 14:42:48
【问题描述】:
在我的 python 项目中,我使用 ctypes 库调用了一个 c++ dll。 该 c++ dll 包含在调用 c# com interop dll 方法的包装 dll 上。
有时我会遇到 COM 异常。我想看看它到底对应什么,但我不知道该怎么做?
如何将 c++ 调试器附加到这种情况?
提前致谢
【问题讨论】:
在我的 python 项目中,我使用 ctypes 库调用了一个 c++ dll。 该 c++ dll 包含在调用 c# com interop dll 方法的包装 dll 上。
有时我会遇到 COM 异常。我想看看它到底对应什么,但我不知道该怎么做?
如何将 c++ 调试器附加到这种情况?
提前致谢
【问题讨论】:
我不知道你的直接问题,但也许你可以通过使用 comtypes 直接从 COM 转到 Python 而不是在两者之间使用 C++ 来解决它。
那么你所要做的就是:
>>> from comtypes import client, COMError
>>> myclassinst = client.CreateObject('MyCOMClass.MyCOMClass')
>>> try:
... myclassinst.DoInvalidOperation()
... except COMError as e:
... print e.args
... print e.hresult
... print e.text
...
(-2147205118, None, (u'MyCOMClass: An Error Message', u'MyCOMClass.MyCOMClass.1', None, 0, None))
-2147205118
None
【讨论】: