【发布时间】:2011-07-24 03:56:38
【问题描述】:
我正在尝试在 Python 中使用 COM 对象,但遇到了一个小问题。
我正在使用的 COM 对象有一个名为 SetCallback 的方法,它采用 object,方法如下所示:
[id(0x60010010)]
void SetCallback([in] IDispatch* callbackobject);
取自 MS OLE/COM 对象查看器
现在,如果我在 python 中创建并实例化我的 COM 应用程序,一切都很好,直到我尝试将对象的实例传递给此方法。
callback = Callback()
mycomobject.SetCallback(callback)
class Callback():
def SetStatusText(self,status):
print status
我在 python 窗口中得到的错误是:TypeError: The Python instance can not be converted to a COM object
在 C# 中做同样的事情时,我曾经让我的类 def 看起来像这样:
[ComVisible(True)]
public class Callback
{
//some methods here
}
方法调用与Python版本相同。
为了使用对象的实例作为 COM 对象的回调,我必须在 Python 中做这样的事情吗?
【问题讨论】:
-
有趣的问题。 com 系统适用于标准的 python 数据类型(int、strings、unicode...)。是否可以创建一个解决方法,例如创建一个可以模仿 SetCallback 函数的监控类?