• 11304阅读
  • 3回复

在Qt中调用ActiveX的方法时,如何传递IDispatch指针? [复制链接]

上一主题 下一主题
离线zhawk
 

只看楼主 倒序阅读 楼主  发表于: 2007-01-03
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
假设已创建两个ActiveX控件x1、x2,类型均为QAxWidget。现在需要把x1的IDispatch接口指针,作为方法参数传递给x2的方法method1。在Qt中该如何实现呢?

我翻遍了Qt的帮助文档,上面只提到了要调用QAxBase::asVariant进行转换,但没有给出例子。我尝试了下列代码,都不行:

x2.dynamicCall("method1(const QVariant&)", x1.asVariant());
x2.dynamicCall("method1(QVariant)", x1.asVariant());
x2.dynamicCall("method1(IDispatch*)", x1.asVariant());
x2.dynamicCall("method1(QAxBase::asVariant())", x1.asVariant());
x2.dynamicCall("method1(QAxObject*)", x1.asVariant());
x2.dynamicCall("method1(QAxObject&)", x1.asVariant());
离线zhawk

只看该作者 1楼 发表于: 2007-01-04
我通过直接调用x2对象的IDispatch::Invoke函数解决了这个问题。但这么做已经和Qt无关了,希望哪位高人能给出Qt的解决办法。
离线lxkjlzz
只看该作者 2楼 发表于: 2010-08-30
我也想知道啊,你的问题解决没,有QAxObject *的指针,但参数要求是Idispatch *怎么传啊
离线18335135506

只看该作者 3楼 发表于: 2022-04-08
解决了么
快速回复
限100 字节
 
上一个 下一个