链接库简介

理解库

库是一个文件, 它包含函数或者其它可以在应用程序中使用的资源.

这些资源一般是通用性的, 允许许多工作不同的应用程序能轻易的共享同呈代码或者资源.

 

静态链接库

是应用程序可执行文件的一部分, 不能与其它使用相同函数的其它应用程序共享.

通常用于相对小的稳定一些的函数库,比如说C标准库,因为它容易创建和维护.

它是在编译和链接时加到可执行文件中的.

 

动态链接库

是可执行文件,它包含函数,数据或资源等其他应用程序可用到的东西.

它可以在需要的时候随时装入, 在装入时或运行时.

WINDOWS为例,当某应用程序需要一个已装入的DLL:

1.       把该DLL映射到新进程的地址空间.

2.       WINDOWS 2000 DLL所留的引用计数器加1.

注意: DLL的路径是它身分的一部分.


比如printf这个函数,我们并不能在系统中找到它的实现代码,比如一个printf.c,但是我们却可以在

自己的程序中使用它,可是包含的<stdio.h>中只有printf的一个声明啊?printf的实现在哪里呢?其实

就在静态链接库里,一个库文件中可以放很多个函数,编译器在链接把取得库中可执行代码的地址,

与用户程序其他部分链接形成可执行的文件。

上面一段是自己理解的,不对的地方请大侠拍砖!

posted @ 2011-02-26 18:11  jialejiahi  阅读(273)  评论(0编辑  收藏  举报