vs集成qt,vs2010集成qt

  vs集成qt,vs2010集成qt

  一、环境介绍操作系统:win10 64位QT版本:5.12.6VS版本:2017。QtActiveX用于封装com组件。打包的COM组件有两个版本,一个是DLL版本,一个是打包成EXE。因为COM组件是微软技术,编译时必须使用MSVC编译器。

  二。有关环境安装,请参考以下文章

  3.将Qt程序封装成COM组件3.1。在Qt Creator中将exe注册为COM组件

  将以上三行添加到。pro文件,第三行是是否可以添加版本信息。

  ffmpegVideoPlayer类:公共QWidget

  {

  q _对象

  Q_CLASSINFO(ClassID , { 4d c3f 340-a6f 7-44 E4-a79b-3e 9217695 FBD } )

  Q_CLASSINFO(InterfaceID , { 9ee 49617-7d5c-441 a-b833-4b 068d 40d 751 } )

  Q_CLASSINFO(EventsID , { 13 ECA 64 b-ee2a-4f3c-aa04-5d 9d 975979 a 7 } )

  公共:

  ffmpegVideoPlayer(q widget * parent=nullptr);

  ~ ffmpegVideoPlayer();

  .

  }最重要的是三行Q_CLASSINFO()。这个宏为类提供了附加信息。ClassID和InterfaceID是必不可少的,需要使用COM组件中的事件时添加EventsID。macro的第二个参数是一个128的字符串,这是一个惟一的标识符。

  ClassID:类的ID(唯一标识类ID(COM)的方法)。注册成功后,您可以在注册表的以下路径中找到该模块:

  计算机\ HKEY当前用户\软件\类别

  InterfaceID:接口ID的ID

  事件:EventsID标识符

  还可以使用q _ property(int value read value write setvalue)添加一些其他属性。

  获取COM对象的方法:

  QAXFACTORY_BEGIN(

  { ce 947 ee 3-0403-4 FDC-895 a-4fe 779394 b 46 } ,//类型库ID

  { 8de 435 ce-8d2a-46ac-B3 B3 B3-CB 800d 0847 c 7 } )//应用ID

  QAXCLASS(ffmpegVideoPlayer)

  QAXFACTORY_END()要编译生成exe,需要在main函数中实例化一个QA application。

  int main(int argc,char *argv[])

  {

  QApplication a(argc,argv);

  如果(!QAxFactory:isServer()){

  ffmpegVideoPlayer w;

  w . show();

  //创建并显示主窗口

  }

  返回a . exec();

  }然后编译

  服务器注册成功!COM组件注册成功。

  3.2.在VS2017中将dll库封装为COM组件

  因为在Qt Creator中把库封装成COM组件会有一个问题,这个问题暂时没有解决,所以可以直接在VS2017中创建Qt ActivQt Server项目,然后移植其他源文件进行编译。主要解决的是移植的问题,编译完成会自动注册,最后会出现注册成功的服务器!此时,可以在注册表中找到该项。

  第四,注册编译好的COM库。

  打包。

  注册exe程序

  服务器注册成功!文字表示注册成功。

  注册dll:

  第五,用html调用COM组件来调用exe

  超文本标记语言

  头

  标题ffmpegVideoPlayer/标题

  /头

  身体

  对象id=ffmpegVideoPlayer 宽度=80% 高度=80%

   clsid:4dc3f 340-a6f 7-44 E4-a79b-3e 9217695 FBD

  /对象

  /body

  /html使用IE浏览器打开它,运行上面生成的exe程序并刷新浏览器。

  单击确定。

  在此插入图片描述。

  正常运行。

  调用dll的时候,html代码要改成对应的classid,然后HTML文件要放在dll的同一个目录下。

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: