我想在我的程序中使用ActiveX控件。Qt ActiveX dynamicCall:錯誤的參數數量
QAxWidget* mAX = new QAxWidget();
mAX->setControl("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}");
我知道有一個函數:
put_ChannelType(long newValue)
但是當我嘗試執行它:
mAX->dynamicCall("put_ChannelType(long)",2);
mAX->dynamicCall("put_ChannelType(int)",2);
mAX->dynamicCall("put_ChannelType(long)",QVariant(2));
mAX->dynamicCall("put_ChannelType(int)",QVariant(2));
我得到:
QAxBase: Error calling IDispatch member put_ChannelType: Bad parameter count
任何想法會出錯?
編輯:
奇怪的是,如果我叫
mAX->dynamicCall("put_ChannelType()");
我沒有得到任何錯誤信息......
編輯2:
這也失敗(如康斯坦丁建議)
QList<QVariant> varlist;
varlist << (int)1;
mAX->dynamicCall("put_ChannelType(int)",varlist);
我錯誤地調用不同線程的事件/插槽時出現此錯誤。你在使用QThreads嗎? – Constantin 2013-02-13 18:06:12
不,我打電話給這個在QMainWindow的構造函數 – Smash 2013-02-13 18:28:44
http://qt-project.org/forums/viewthread/4842也許,傳遞一個'QList瓦爾斯'而不是? –
Constantin
2013-02-13 18:32:11