问题记录:
使用 cmake add_library 命令生成的只是 dll 文件,并不符合com接口调用规范,在调用 regsvr32 xxx.ocx 文件报错,无法使用。
官方文档
https://doc.qt.io/qt-5/activeqt-index.html
https://doc.qt.io/qt-5/activeqt-idc.html
根据官方文档,Qt 提供了对 ActiveX 和 COM接口技术进行了封装,分别通过 QAxContainer和QAxServer模块完成。
QAxContainer模板,是COM组件的容器,用来装载COM组件,将com中的属性,方法,事件转化成QObject对象中的属性,槽函数和信号
QAxServer 模块,将 Qt 接口导出为COM组件对象。
解决思路:
检查 qmake生成 ocx 文件步骤。
程序可执行文件将连接到qaxserver.lib而不再是qtmain.lib,一般的应用程序都是连接到qtmain.lib中。
1 在编译成功插件后,调用idc(The Interface Description Compiler )程序生成一份COM插件对应的IDL文件。指定版本默认是1.0,idc工具是 qt 提供