DLL——Dynamic Link Library,动态链接库
与动态链接库(下面简称DLL)对应的是静态库(LIB)两者的功能相同,但使用方式不同,为了说明清晰,我必须要一起说明指出其中的差别。
Lib,就是编译过程中生成的.lib文件。对于现在的编程习惯来说,.lib文件应该不如.dll常见。
不管是Lib还是Dll都是为了方便代码重用和资源提取。可以理解为一种供以程序使用的公共仓库。
Lib和Dll的差别就在于其中存储的资源能否根据需要,动态的加载和卸载。
Dll,动态链接库,可以根据需要,动态地加载和卸载
Lib,静态链接库,不能。
这意味着,使用Dll生成的可执行程序(.exe),体积一般都比起相同代码但使用Lib的可执行程序要小得多。
这很好理解,使用Lib的程序已经把程序加载所需的所有资源都整合进其中。而使用Dll的程序没有。
因此使用Dll的程序需要执行其的计算机中有其所需的Dll文件才能正常执行。而使用Lib的程序可以独立运行
Lib与DLL不能同时使用
Windows操作系统十分依赖Dll。
使用Dll有许多显而易见的好处,除了前面说的生成的可执行程序体积更小的优势以外。由于dll可以在使用时根据需要动态地加载和卸载,所以程序执行的时候所需的内存空间也更小。在内存条这种寸土寸金的地方,使用Dll几乎是必然又真香的选择。
在Windows中十分常用的dll:
KERNEL32.dll。
USER2.dll
GDI32.dll
几乎所有的windows程序都会用到这三个dll里面的函数。
所以到现在我们可以做出一个总结:
动态链接库中储存的是公共的,供以程序运行时使用的资源(可以是各种数据资源,可执行函数,可以理解为汇编中的代码段,数据段可存储的数据,dll都能够储存)
在解释完Dll的定义以后,我们具体实现一个最简单的DLL实例
#include cont(“lib”,yourdll’s address)