3

私は、COM のかなり単純なインターフェイスだと思うものを手に入れました。私はそれをactiveqtに実装したいと思います。ATL プロトタイプを動作させることができましたが、COM コントロールよりも qt ウィジェットとシグナルを使用したいと考えています。

ATL COM dll を Python の comtypes にロードして runhelp(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 で使用するインターフェイスを抽出するのには役立ちません。[/編集] ATL と activeqt を混在させずにインターフェイスをオーバーライドする方法はありますか? QtツールとATLの両方がidlを生成しようとしていることが私の闘争の原因であるかどうか疑問に思っています...

ありがとう!

4

0 に答える 0