• 4734阅读
  • 3回复

[提问]qaxobject 基类转换成子类的方法 [复制链接]

上一主题 下一主题
离线qylibohao
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-14
com 组件开发新手,想请教 一下,本人用dumpcpp生成了
该com组件的.h .cpp 进行开发。
class Entity : public QAxObject
{


}
class Text : public QAxObject
{


}
如果 text 类是 派生自 entity 类。现在已经得到了父类entity 的指针
但是调用dynamic_cast是不行的,queryInterface 好像也不行。请问
一下改如何从父类转换成子类?
谢谢。
离线fish0619

只看该作者 1楼 发表于: 2012-04-14
看你的代码并没有体现`Enttity`和`Text`之间的继承关系,`dynamic_cast`当然转不过去。

如果你确定可以两个类的内存结构是一样的,可以用`static_cast<>()`直接转。估计你的代码写错了,建议先看看Qt的examples再写。
离线qylibohao
只看该作者 2楼 发表于: 2012-04-15
这是com接口,因为这是用了qtdumpcpp封装了的,所以不是继承关系
离线fish0619

只看该作者 3楼 发表于: 2012-04-15
我的意思是`dynamic_cast<>`需要继承关系才能转换成功。

我想有两种方案。一,如果你有COM接口转换的头文件,你可以调用`QueryInterface()`,然后强制转换,相当于你直接用COM本身的编程API。二是调用`QAxBase`的方法,达到动态编程的效果。
快速回复
限100 字节
 
上一个 下一个