dll和lib的区别

lib 是静态连接库,之所以叫静态是因为lib的处理是在编译阶段进行的,编译器在编译时将调用者使用到的代码嵌入到调用者代码当中,与调用代码一起编译,一起在私有地址空间中分配内存。而dll是动态连接库,之所以叫动态是因为dll的实际处理是在运行阶段进行的,编译器在编译阶段只在调用者的调用处做一个连接标记,待程序运行时再将dll装入到进程的共享地址空间中。   


另外,lib和dll 的调用方式也不同。

  
总之,lib和dll是软件架构组织的两种方式,一般情况下,两者是可以代替的,即用了lib就不用dll ,反之亦然。当然很多开发包是两者兼用的,即以lib做为调用入口,然后在间接调用相关的dll,这样有利于代码的封装性和可扩充性,并且不亦被人盗窃(反汇编)。(这里有些不太明白,封装性可以理解,但是可扩充性从何谈起?不易被人盗窃不懂,目前还没有了解过反汇编)

  
注意: lib和dll是windows中的概念,其他操作系统(如linux)中也有相似的软件架构组织方式,但并不是lib和dll的概念,而且原理也不一样。(那原理应该是什么呢? 学习中........)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值