Qt ActiveX dynamicCall:参数计数错误
Qt ActiveX dynamicCall: bad parameter count
我正试图在程序中使用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);
使用generateDocumentation()
函数解决了这个问题。
我在另一个应用程序中使用了这个ActiveX控件,但它是MFC应用程序。
我所指的函数名(在VS创建的机器生成的IDispatch包装类中)似乎与列出的Qt不同。
即put_ChannelType实际上是SetChannelType。。。
也许这只是版本问题?
无论如何,重要的是要知道generateDocumentation()
可以列出您可以使用dynamicCall
调用的所有函数。
可以吗?mAX->dynamicCall("put_ChannelType(const QVariant&)",(long)2);
相关文章:
- 如何通过参数抛出错误消息
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 为什么 std::绑定错误参数可以成功?
- 在函数中使用 const int size 参数创建数组会在 Visual Studio 中抛出错误 C++:表达式的计
- g++ 为 transform() 的参数生成错误
- 如何在C++中使用 Void 而不会收到有关参数的错误
- 错误:参数中无效地使用了无效表达式
- xgboost 构建错误:参数包未扩展为"..":
- src/caffe/parallel.cpp:70:1:错误:“参数”未命名类型
- OpenCV 错误:ERClassifierNM1 中的错误参数
- 为什么显示错误:参数太少而无法正常工作
- 算法错误:参数无法从对中掩盖 1
- 类模板方法的专用化,类型名称是类模板 - 错误:参数处的类型/值不匹配
- C++连接函数错误-参数无效
- 错误:参数无效
- (自适应)opencv中的阈值错误(cvarrToMat中的错误参数(未知数组类型))
- OpenCV错误:cvGetSize中的错误参数(数组应该是CvMat或IplImage)
- OpenCV 2.2:未知函数中的错误参数,文件.. .ocv OpenCV modulescoresr
- 错误:参数声明的存储类说明符无效