首页 > 其他 > 详细

Qt 关于COM组件的使用的记录 (二)

时间:2019-04-11 11:19:55      阅读:177      评论:0      收藏:0      [点我收藏+]

接前面的COM组件使用记录。

这里要说明一下QAxObject和QAxBase的区别。

帮助文档中对QAxObject的说明:The QAxObject class provides a QObject that wraps a COM object.

       对QAxWidget的说明:The QAxWidget class is a QWidget that wraps an ActiveX control.

一个是封装COM组件,一个是包装ActiveX。

 

上一文中使用QAxObject类对象来做COM组件的使用,发现在实际使用中,有一些接口通过dynamicCall是调用不了的,会提示

QAxBase: Error calling IDispatch member checkDevice: Exception thrown by server

这样的错误。

后来查看了通过dumpcpp工具导出的.h文件,里面的类是这样

class CRITERIONLIB_EXPORT stdfcectl : public QAxWidget

因此尝试修改成QAxWidget的对象指针来进行调用,就可以调用所有的接口了。

目前使用的Qt5.5版本中,帮助文档是写的QAxObject的使用用法;后来查阅了《C++ GUI Qt4 编程 (第二版)》第23章第二节内容。里面的组件是继承的QWidget,也是用的QAxWidget来加载。

所以这里猜想,所实例化的对象,应该要根据组件的类型来选择。如果包含窗口对象,使用QAxWidget,反之QAxObject。

另外,上文中生成的html文件,里面会有详细的对每个接口的使用说明,是很好用的一个参考文件了。

 

Qt 关于COM组件的使用的记录 (二)

原文:https://www.cnblogs.com/warmSnowFY/p/10688305.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!