近期项目使用COM组件生成的DLL库,我采用QT自带Com组件操作类调用DLL中函数接口;QT自带com组件操作类库,QAxObject或QAxWidget即可操作以COM为组件的DLL库,网上有许多例子采用这两个类操作EXCEL,在此我不做详述,在QT中还可以使用QT类库创建COM组件供Windows中C#调用;在此我想说QT是真强大。
这里附两个例子操作excel:(该两个例子我随手贴的,如有侵权请告知删除)
https://blog.csdn.net/qq319923400/article/details/80149367
https://blog.csdn.net/x85371169/article/details/79268258
使用QT自带dumpcpp工具直接将COM组件DLL库转换成Qt可调用C++类;具体操作如下:
1)找好自己安装QT目录,并确定开发环境,我在windows中使用,采用QT5.9.7版本QT,环境与VS2015共同开发,所以使用msvc2015工具链中工具,工具路径如下:
2)查看使用方法,可直接查看QT帮助文档;
3)找到需要处理的DLL库或需要使用工具的库ID,ID及注册表中的注册ID,如果不知道ID名或ID号可直接在注册表中查找,我的ID如下:
4)使用cmd生成C++类,先切换路径到dumpcpp工具路径下,然后使用dumpcpp ID
执行未报错将会在Qt工具路径下生成C++的类:一个.h一个.cpp
这两个文件以QT类生成,可直接在项目中使用;
5)将生成文件引用本机项目即可使用该组件
注:生成的文件不带信号函数因为它直接跳过所有事件:skipping event interface _IVSPortAxEvents,但不影响操作,在COM组件中的事件函数,其实在该类中可直接使用其事件函数为信号函数,需要注意的只有其事件函数参数值:
在QAxwidget中有一信号函数,该信号函数来自QAxBase
使用该信号函数可查看到组件会响应的所有事件函数及参数类型,该信号可供参考
博客文章迁移至:https://www.10sxj.com/
如有疑问加群:676977101(新群)