3

我有一个我认为在 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 吗?[编辑]如果您想从 Qt 调用现有的 COM 对象,dumpcpp 很有用,但无助于提取接口以在 activeQt 中使用。[/edit] 那是在不混合ATL和activeqt的情况下覆盖接口的方法吗?我想知道 qt 工具和 ATL 是否都试图生成 idl 是我挣扎的根源......

谢谢!

4

0 回答 0