动态链接库不能直接运行,也不能接受消息,是独立的文件,其中包含能被执行或者其他DLL调用来完成某项工作的函数。只有在其他模块调用动态链接库的函数时,才发挥作用。
在实际中,通常把完成某种功能的函数放在一个动态链接库中,然后提供给其他程序使用。
Windows API中所有的函数都饱包含在DLL中,其中有3个重要的DLL

1)Kernei32.dll
包含用于管理内存、进程和线程的函数,如:Createthread函数
2)User32.dll
包含执行用户界面的函数,如: CreateWindow函数
3)GDI32.dll
包含用于画图和显示文本的函数


静态库和动态库

静态库

函数和数据被编译仅一个二进制文件(通常扩展名为.lib),在使用静态链接库下,在编译链接的时候,链接器从库中复制这些函数和数据,并把它们和相应的应用程序模块组合起来创建成可执行文件(.exe)
动态库

提供两个文件:引入库(.lib)和DLL(.dll),引入库包含DLL导出中的函数和变量的符号名,而.dll中包含实际的函数和数据。
与静调库最大的区别就是在编译链接的时候,只用链接引入库中的,而并不复制DLL里的数据和函数,直到执行的时候才去加载DLL,访问DLL中的函数和数据。

动态链接库的加载
• 隐式链接
• 显示加载