2016-08-01 4 views
1

ActiveXでクラスのGetメソッドにアクセスできますが、Letプロパティにアクセスすることはできません。QAxBase(Qt)でゲットしよう

QAxObject *p = new QAxObject("MyApp.Application", 0); 
p->dynamicCall("Signals(const QString&)","Sig0");// this will issue GET 
p->dynamicCall("Signals(const QString& ,int)","Sig0",1);// doesn't work 

VBコード:

Public Property Get Signal(ByVal Key As Variant) As Long 
Debug.Print Key 
End Property 

Public Property Let Signal(ByVal Key As Variant, ByVal Value As Long) 
Debug.Print Key _ Value 
End Property 

私の目標は、この方法をしてみましょう発行することです。

+0

どのようにCOMオブジェクトのタイプライブラリは見えますか? – AlexanderVX

+0

[id(00000000)、propget] long Signal([in] VARIANT Key)の2つの項目があります。 [id(00000000)、propput] voidシグナル( [in] VARIANTキー、 [in] long rhs); –

+0

"信号"を使用します。複数?インターフェイスは単数の「信号」を示します。そしておそらくp-> dynamicCall( "Signals(const QString&、int)"、 "Sig0"、1); p> dynamicCall( "Signal(const QString&、long)"、 "Sig0"、1);でなければなりません。次に。 – AlexanderVX

答えて

0

解決策は、IDispatchメソッドを使用することです。 問題は、QtライブラリはプロパティSet(PUT)が1つのパラメータしか受け付けないと仮定していましたが、私の場合は2つのパラメータでPutが必要です。 この記事は私にそれを解決するのを助けました:https://support.microsoft.com/en-us/kb/216686

関連する問題