动态链接库、静态链接库;动态链接、静态链接

转载自: http://www.cnblogs.com/dawen/archive/2010/09/22/1833031.html

术语:

  • 动态链接库
  • 静态链接库
  • 动态链接
  • 静态链接

其中动态链接库和静态链接库表示库本身文件,而动态链接和静态链接表示程序对库本身文件的链接方式;

模块化编程经历了“无库->静态库->动态库”的阶段

动态链接库和静态链接库都是一种代码仓库,为外界提供变量、函数或类,所以在一个程序中,不同的模块部分可以用库文件的形式来实现,从而只提供给外界相应的接口即可。

动态链接库的文件命名后缀为dll,静态链接库的文件命名后缀为lib; 或许有些同志就会疑问:在使用动态链接库的时候也有lib文件,其实该lib文件只是dll的导出描述,即导出库。

链接方式的区别:

静态链接方式为把库文件的东西拷贝到目的程序中,即在链接时就完成该操作;从静态链接方式的行为上看,其最终适用于静态链接库上。

动态链接方式即在运行时动态加载库文件;从动态链接方式的行为上看,其最终适用于动态链接库上,其调用方式为运行LoadLibrary函数;在程序中,所有的动态链接库的调用都是最终使用LoadLibrary函数,这时或许又有同志疑问:那么在使用动态链接库的导出库(lib)时,没有使用LoadLibrary 函数啊??这里牵涉到两个概念:即动态链接库的显式加载和隐式加载,通过在程序代码里调用LoadLibrary函数的方式即为显示加载方式,而通过使用导出库的方式即为隐式加载的方式,个人认为在隐式加载里最终会通过LoadLibrary函数来进行动态链接库的加载,那么隐式加载方式中的LoadLibrary函数在哪了?其实就在动态链接库的导出库里。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值