• 8372阅读
  • 3回复

关于QAxBase::dynamicCall [复制链接]

上一主题 下一主题
离线cwbcwb505
 
只看楼主 倒序阅读 楼主  发表于: 2008-10-16
— 本帖被 XChinux 执行加亮操作(2009-01-03) —
本人用QString generateDocumentation () 生成了一个关于COM接口函数的列表,并按表中的形式来调用了接口函数,可是当接口函数的形参是指针的时候,调用的结果就会出错,例如:

COM接口函数的原型如下:

void  GetInt ( long* oResult)
{
        *oResult = 20;
}

用QString generateDocumentation () 得到的接口资料如下:
void  GetInt ( int&  oResult);

本人调用方式如下:
int  result;
QAxBase.dynamicCall ( " GetInt ( int &) ",  result);

这时我发现result里面的值不是20,而是一个很大的值,应该是没有被初始化的现象,但是当接口函数为其它类型的时候,我发现调用正常,请问应该如何解决这个问题呢?

我发现QAxBase有一个long queryInterface ( const QUuid & uuid, void ** iface ) const ,我想可能用它能解决问题吧,但是不知道应该怎么用,
离线ltxings
只看该作者 1楼 发表于: 2009-01-01
你调用的方式有问题,参数应该为指针或地址。
int  result;
QAxBase.dynamicCall ( " GetInt ( int &) ",  &result);
离线bingfeng1225
只看该作者 2楼 发表于: 2011-05-30
回 1楼(ltxings) 的帖子
你尝试过吗?编译都不过,能用?。。。。。。
离线jingxiee
只看该作者 3楼 发表于: 2012-03-15
这个问题有答案吗?遇到同样的问题了
快速回复
限100 字节
 
上一个 下一个