前言

  使用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,然后输入如下内容:

<html>
<head>
<title>activeQtDemo</title>
</head>
<body>
<object id="object"
classid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
<!-- 以下为入坑了 -->
<!-- classid="2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"> -->
[Object not available! Did you forget to build and register the server?]
</object>
</body>
</html>

  使用IE运行,active是微软特有的,其他浏览器不支持,如下图:
  

 

入坑

入坑一:调用控件失败

问题

  

原因

  因为classid的格式错误

解决

<html>
<head>
<title>activeQtDemo</title>
</head>
<body>
<object id="object"
classid="CLSID:2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC">
<!-- 以下为入坑了 -->
<!-- classid="2F12BFB8-137D-4DC2-9A93-634EFE5A6DFC"> -->
[Object not available! Did you forget to build and register the server?]
</object>
</body>
</html>

  

 

上一篇:无
下一篇:敬请期待…

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113773009

长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808

Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo的更多相关文章

  1. 【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较

    前言:突然想打算把Rust作为将来自己主要的副编程语言.当然,主语言还是C#,毕竟.NET平台这么强大,写起来就是爽.缘起:之前打算一些新的产品或者新的要开发的东西,由于没有历史包袱,就想重新选型一下 ...

  2. Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分享 ...

  3. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  4. React Native的环境搭建以及开发的IDE

    (一)前言 前面的课程我们已经对React Native的环境搭建以及开发的IDE做了相关的讲解,今天我们的主要讲解的是应用设备运行(Running)以及调试方法(Debugging).本节的前提条件 ...

  5. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)   前面我们介绍了StoryBoard这个新技术,和纯技术 ...

  6. iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

  7. Python环境搭建和开发工具的配置

    本文转自http://237451446.blog.51cto.com/2307663/766781 因为要学习python了,第一步当然是环境搭建和开发工具的配置了,下边开始了. 我的开发环境是在w ...

  8.  paip.android环境搭建与开发事例

    paip.android环境搭建与开发事例 好长时间没有玩AndROID了..以前常常做ANDROID的,今天决定在下载一个要做个时间设置器 作者Attilax ,  EMAIL:1466519819 ...

  9. python环境搭建和开发工具的配置【转】

    因为要学习python了,第一步当然是环境搭建和开发工具的配置了,下边开始了. 我的开发环境是在window下. 一.环境搭建 先在python官网python.org下载安装文件,python2.x ...

随机推荐

  1. D2Admin 登录用户重新初始话右侧菜单

    背景 最近用到D2Admin开发项目,用户登录菜单要根据用户角色权限获取,但是又不想用官网的方案(vue基于d2-admin的RBAC权限管理解决方案),所以自己加了个只修改 menuAside的方案 ...

  2. ts类与修饰符

    最近在用egret做游戏,就接触到了ts,刚开始的时候觉得类挺难的,毕竟大多数的JavaScript工程师工作中不怎么需要用到这个,但是学起来就不愿意撒手了,真香! typescript其实是es6的 ...

  3. logicaldisk本地磁盘管理

    在网上搜了很多,但是基本都是一样的,差不多都是互相转载摘抄,就那么几个寥寥无几的例子,所以我冒了很大的风险,自己经过多次的测试,对这个命令有了一些新的认识!拿出来分享一下! LOGICALDISK   ...

  4. linux中的虚拟环境工具

    1.虚拟环境工具的学习 python的虚拟环境,其实就是在机器上,方便的创建出多个解释器,每个解释器运行一个项目,互相之间不受影响 2.virtualenv工具,可以方便的创建,使用,删除也很方便 3 ...

  5. TSP旅行商问题

    求解的问题,burma.tsp里面的内容 1 16.47 96.10 2 16.47 94.44 3 20.09 92.54 4 22.39 93.37 5 25.23 97.24 6 22.00 9 ...

  6. Kubernetes调整Node节点快速驱逐pod的时间

    在高可用的k8s集群中,当Node节点挂掉,kubelet无法提供工作的时候,pod将会自动调度到其他的节点上去,而调度到节点上的时间需要我们慎重考量,因为它决定了生产的稳定性.可靠性,更快的迁移可以 ...

  7. 在QML 中用javascritpt 将中文转换拼音,可以在音标

    项目需要, 今天整理了一下.在QML调用javascrit将中文汉字转换成拼音. 感觉执行效率低.下面是主要代码. 具体代码请参考QMLPinyin 代码 ```import "./piny ...

  8. Python学习【第2篇】:循环

    For循环 pass while 循环 pass 练习题: 1.使用while循环输入 1 2 3 4 5 6     8 9 10,不输出7 n = 1while n< 11: if n == ...

  9. cpdd 坐标:SD

    updata on:2021.1.17 闲来无事继续鸽 性别:男 先鸽一会想起来再填/se

  10. Linux 文件搜索神器 find 实战详解,建议收藏!

    大家好,我是肖邦,这是我的第 10 篇原创文章. 在 Linux 系统使用中,作为一个管理员,我希望能查找系统中所有的大小超过 200M 文件,查看近 7 天系统中哪些文件被修改过,找出所有子目录中的 ...