简单实现基于C++的COM组件创建与DLL封装

(注:新手非专业,从无到有了解仅用时一天。个人学习笔记,仅供参考。如有错误,欢迎指正。)

一、组件、COM、DLL基本概念及关系

参考资料:
https://www.cnblogs.com/Braveliu/p/3434171.html
COM编程之一 组件

https://www.cnblogs.com/lasthelloworld/p/4958282.html
Com组件和Dll文件区别

1、组件

单个应用程序分隔为多个独立部分,各自称为组件。

2、COM

COM是关于如何建立组件以及如何通过组件构建应用程序的规范。组件架构便于快速应用程序开发。

3、COM组件

COM组件是一组接口的集合,由Win32动态链接库(DLL)或可执行文件(EXE)的形式发布的可执行二进制代码组成。

4、DLL

DLL称为“动态链接库”,又称"应用程序拓展"。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。

5、DLL文件如何发挥作用

DLL中存放各类程序的函数实现过程。当程序需要调用函数时,先载入DLL,然后取得函数的地址,最后进行调用。动态链接,指编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不会复制到可执行文件。在运行时,再去加载DLL,访问DLL中导出的函数。

6、DLL的优点

避免暴露源代码;减少重复加载;模块化;等等。

7、COM、COM组件、DLL之间的关系

DLL是包含函数和数据模块的集合。COM是规范,以该规范实现的DLL可视为COM组件。COM组件接口实现是统一的虚拟函数表(VTBL)形式,其包含组件函数的一组指针,由此可获取想要通信的组件函数的内存地址。

二、COM组件的创建及DLL封装

参考资料:
https://blog.csdn.net/LittleLittleFish_xyg/article/details/80988159
c++编写COM组件,并使用该组件

https://www.bilibili.com/video/BV1hE411D7F2
COM 组件的创建

https://blog.csdn.net/bytxl/article/details/46313581
理解 __declspec(dllexport)和__declspec(dllimport)

https://blog.csdn.net/little_bobo/article/details/55100660
如何编译生成dll文件以及如何调用dll文件

1、新建项目(DLL型)

新建一个Win32控制台应用程序,项目名为DLL,并在设置时将应用程序类型修改为“DLL”。请添加图片描述

2、DLL.h中声明变量和函数(以两整数相加为例)

头文件是C++的接口文件,不仅本工程需要使用头文件来进行编译,给其他工程提供dll的时候也要提供此dll的头文件才能让其他人通过编程的方式来使用dll。头文件中声明了方法。

在DDL.h头文件中,声明了两个整型变量aa和bb以及加法函数Add():

extern "C" DLL_API int aa;
extern "C" DLL_API int bb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xh_fighting

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值