不要重复发明轮子:C++重用的5重境界(2)——简单DLL

本文探讨了通过DLL(动态链接库)实现代码重用的方法及其局限性。详细介绍了DLL的基本概念,如何通过DLL来减少磁盘和内存空间的占用,并讨论了DLL在编译过程中的实际问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二重境界:简单DLL

稍有经验的人都知道,要解决代码重用的问题其实已经有简单的方法了,那就是动态链接库(Windows平台是DLLLinux/UNIXso,下面以DLL为例说明)。

简单的DLL实现如下:将对象、方法的定义放在DLL里面,使用时只需要包含DLL的头文件即可。

这样简单的一个设计,就能够解决代码重用的一个大问题:一份DLL只占一份磁盘空间、一份内存空间。

但为什么我没有说解决了另外一个大问题——编译的问题呢?

乍一看好像是解决了编译的问题,例如我修改函数体内的某个执行语句,或者加一个逻辑判断,只需要编译DLL就可以了呀!

如果只修改函数体那当然是没有问题,但关键是世界没有那么完美和简单,我们可以做很多的修改,例如:

1) 修改类定义:例如增加一个成员变量。

2) 修改函数定义:例如增加一个函数参数,修改某个入参类型;

3) 修改函数体:例如增加一个语句,一个调用等。

以上修改除了第三种修改只需要编译DLL外,其它两种修改都需要重新编译整个项目,也就是说,DLL能够解决空间和编译的部分问题,不能解决所有的编译问题。

革命尚未成功,同志还需努力!!

========未完待续,后面更精彩===========

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值