前言
使用C#开发动画,绘图性能跟不上,更换方案使用Qt开发Qt的控件制作成OCX以供C#调用,而activex则是ocx的更高级形式。
QtCreator是没有Active控件项目的,所有需要使用VS,笔者使用VS2019开发。
准备工作
Qt5.15.2 + VS2019 + vs tools,搭建基础开发环境不再赘述。
开发第一个Qt Activex:Hello world
步骤一:新建Qt ActiveQt Server项目
步骤二:拖一个QLabel,输入”Hello world”
步骤三:生成出现错误“MSB3073”
需要使用管理员权限打开VS2019软件。
步骤四:生成release和debug版本
步骤五:注册activex控件
运行之前先要注册,使用Qt下自带的idc注册一下。
idc -regserver activeHelloWorldDemo.dll
步骤六:调用activeQt控件
查看一下,打开注册表并搜索一下,确认clsid,如下图:
创建一个html,然后输入如下内容:
activeQtDemoclassid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
[Object not available! Did you forget to build and register the server?]
使用IE运行,active是微软特有的,其他浏览器不支持,如下图:
入坑
入坑一:调用控件失败
问题
原因
因为classid的格式错误
解决
activeQtDemoclassid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
[Object not available! Did you forget to build and register the server?]