【发布时间】:2013-02-15 09:51:37
【问题描述】:
我正在尝试在我的程序中使用 ActiveX 控件。
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 吗?
-
不,我在 QMainWindow 构造函数中调用它
-
qt-project.org/forums/viewthread/4842 也许,改为传递
QList<QVariant> vars? -
是的,我已经看到并尝试过,失败:/