大文

关注C\C++开发与架构

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

术语:

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

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

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

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

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

链接方式的区别:

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

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

posted on 2010-09-22 14:27  大文  阅读(912)  评论(0编辑  收藏  举报