QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录

1.C#的dll注册为COM,采用bat的方式

2.通过qt的dumpcpp来生成h及cpp文件

3.h文件和cpp文件处理。



台达数控系统的C#的dll

dumpcpp用的tlb文件

dumpcpp生成的原生h文件

dumpcpp生成的原生cpp

dump生成后的的原生cpp文件修改后的cpp文资源

dump生成后的的原生h文件修改后的h文资源

1.C#的dll注册为COM,采用bat的方式

采用C#的方式注册:

%windir%\Microsoft.NET\Framework64\v4.0.30319\Regasm CNCNetLib2.dll /tlb: CNCNetLib2.tlb /codebase

卸载COM

%windir%\Microsoft.NET\Framework64\v4.0.30319\Regasm CNCNetLib2.dll /tlb: CNCNetLib2.tlb /u /codebase

2.通过qt的dumpcpp来生成h及cpp文件

在qt的安装目录下找到dumpcpp.exe文件,然后安装shift调用powershell窗口(生成文件在dumpcpp路径下),也可直接在tlb文件所在目录打开powershell 窗口,直接通过 dumpcpp ,然后将tlb文件直接拉取到powershell窗口中即可。生成的文件就在tlb文件所在目录下。

然后输入 dumpcpp tlb文件路径  ,回车即可 tlb路径直接将tlb文件拉进窗口即可自动生成。之后在dumpcpp.exe文件所在路径下将自动生成h及cpp文件。该文件即可以把COM组件,像普通的类进行调用。上述1,2两步不分先后,但是在编程之前,得把dll注册到系统中。否则到时候会调用失效。

dumpcpp tlb文件路径

3.h文件和cpp文件处理。

在项目中需要添加COM容器模块QAxContainer。

当把这两个文件加载到C++项目中后,有可能会出现一些错误。这时候就需要做一些简单的修改。

将C#中用的接口注释掉。

  1. 有些命名空间可能跟类名一样,这时候最好手动将命名空间换一个,采用全部替换 -旧的命名空间:: -全部替换-新的命名空间::的方式一次解决,否则在别的类中使用时,采用using namespace 的方式将失效。
  2. 有些在C#中用到了多个构造函数,有些类在QT中没办法识别,可以将不能识别的注释掉。保留一个能够正常使用的。
  3. 有些调用的其他跟自己需要的类不相干的类也可以注释掉,因为可能也有些在qt里面没法识别,都可以注释掉。
  4. 这时候差不多就能用了,如果在自己需要的那个类里面出现了不能注释掉的,比如只有一个构造函数,但是里面又有qt无法识别的类时,这个笔者能力有限,也不知道咋弄。
  5. 目前在遇到的2个项目里面都没有碰到上面的问题,需要的类都可以通过简单的删除或者修改就可以使用了。
  6. 当调用多个COM时,可能这些COM有些相同的定义,这时候最好新建一个h文件,将这些相同的定义放到一个h文件中,这样保证不会多重定义。如下代码,是dumpcpp自动生成的,每个COM组件都有这个时,需要把这些放到一个头文件中,再包含这个头文件即可。
    struct IDispatch;// Referenced namespace
    namespace System {class ISite;
    }namespace mscorlib {class _Type;class _EventHandler;
    }Q_DECLARE_OPAQUE_POINTER(System::ISite*)
    Q_DECLARE_OPAQUE_POINTER(mscorlib::_Type*)
    Q_DECLARE_OPAQUE_POINTER(mscorlib::_EventHandler*)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/540181.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何区分工业以太网交换机和常规以太网交换机

工业以太网交换机和常规以太网交换机乍一看似乎很相似,但两者之间存在着一些关键区别。在本文中,我们将阐明这些差异,并为您提供一些快速区分两者的提示。 工业以太网交换机与常规以太网交换机的比较 工业以太网交换机和常规以太网交换机都…

邮件营销必备技能:邮件内容颜色如何选择?色彩搭配小窍门分享!

不同的色彩组合可以传达不同的信息内容。今天,小编将在这篇文章钟介绍在邮件营销中如何选择合适的邮件内容颜色,为营销助力! 一、什么时候应该选择哪种颜色? 每种颜色都有个人层面和公众层面的意义。就个人而言,一种…

uniapp-vue3 项目初始化集成配置【开箱即用】

地址 https://gitee.com/charrie/vue3-uniapp-init 部分截图展示 技术说明 采用vue3viteuniapp技术栈,setup语法糖编码方式使用完全免费的sard-uniapp组件库引入unocss量子化样式引擎,动态css不用自己写样式,引用class即可,降低…

深入浅出计算机网络 day.2 概论⑥ 计算机网络体系结构

上帝疯狂杜撰世界悲情的命题 将凉薄和荒芜尽写 —— 24.3.13 内容概述 1.常见的三种计算机网络体系结构 2.计算机网路体系结构分层的必要性 3.计算机网络体系结构分层思想举例 4.计算机网络体系结构中的专用术语 一、常见的三种计算机网络体系结构 1.OSI参考模型 …

1.1 课程架构介绍:STM32H5信息安全特性概览

1.1 课程架构介绍:STM32H5信息安全特性概览 1. 概述 开发者在打造嵌入式系统时,安全和性能是产品开发设计的考量重点。为实现这一目标,ST推出了STM32H5系列,该系列作为微控制器新标杆面向工业应用市场,将为用户带来更…

AI-逻辑回归模型

😆😆😆感谢大家的支持~😆😆😆 逻辑回归的应用场景 逻辑回归(Logistic Regression)是机器学习中的 一种分类模型 ,逻辑回归是一种分类算法,虽然名字中带有回…

中国金融统计年鉴、中国保险统计年鉴、中国人口与就业统计年鉴、国民经济和社会发展公报、中国劳动统计年鉴

数据下载链接:百度云下载链接 统计年鉴是指以统计图表和分析说明为主,通过高度密集的统计数据来全面、系统、连续地记录年度经济、社会等各方面发展情况的大型工具书来获取统计数据资料。 统计年鉴是进行各项经济、社会研究的必要前提。而借助于统计年…

让数据在业务间高效流转,镜舟科技与NineData完成产品兼容互认

近日,镜舟科技与NineData完成产品兼容测试。在经过联合测试后,镜舟科技旗下产品与NineData云原生智能数据管理平台完全兼容,整体运行高效稳定。 镜舟科技致力于帮助中国企业构建卓越的数据分析系统,打造独具竞争力的“数据护城河”…

Spring Web MVC入门(1)

什么是Spring Web MVC? 定义:Spring Web MVC是基于Servlet构建的原始Web框架,从一开始就包含在Spring框架中.它的正式名称"Spring Web MVC"来自其源模块的名称(Spring-webmvc),但是它通常被称为"Spring MVC". 什么是Servlet? Servlet是一种实现动态页面…

开源推荐榜【一个AI模型可以把设计直接生成衣服穿到模特身上】

OOTDiffusion 开源地址:https://github.com/levihsu/OOTDiffusion

机器学习--Transformer 1

Transformer 是一个基于自注意力的序列到序列模型,与基于循环神经网络的序列到序列模型不同,其可以能够并行计算。 一、序列到序列模型 序列到序列模型输入和输出都是一个序列,输入与输出序列长度之间的关系有两种情况。第一种情况下&#…

专业140+总400+重庆邮电大学801信号与系统考研经验重邮电子信息与通信工程,真题,大纲,参考书。

今年报考重庆邮电大学研究生,初试专业课801信号与系统140总分400,总结一下自己去年的复习经验,希望对大家复习有帮助。 专业课: 重邮专业801信号与系统难度中等,今年140算是正常发挥,没有达到Jenny老师要求…