我认为COM中的界面相当简单。我想在activeqt中实现它。我能够使ATL原型工作,但我宁愿使用qt小部件和信号而不是COM控件。
我可以在python的comtypes中加载ATL COM dll并运行help(ATLDll)
,并且接口的相关扩展名为
Methods inherited from comtypes.gen.<guid>.ITest:
Init(...)
method Init
我不确定如何在activeqt中获得同样的东西。 ATL正在使用此代码来定义接口(我认为,这是在自动生成的_i.h文件中):
MIDL_INTERFACE(<guid>)
ITest : public IDispatch
{
public:
virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Init(
/* [in] */ IDispatch *obj) = 0;
};
然后类定义继承自
public IDispatchImpl<ITest>
我尝试过混合activeqt和ATL,但到目前为止我还没有成功。我应该使用dumpcpp吗? [edit]如果要从Qt调用现有COM对象, dumpcpp非常有用,但无法解压缩在activeQt中使用的接口。 [/ edit]这是否可以覆盖界面没有混合ATL和activeqt?我想知道qt工具和ATL是否都试图生成idl是我挣扎的根源......
谢谢!