我想在我的程序中使用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