一,动态链接库的基本概念
1.DLL(Dynamic Linker Library)的概念
可以把DLL看做是一个仓库,它提供了一些可以直接拿来用的变量,函数或者类(但是不建议从DLL中获取变量),在历史的发展中,仓库经历了从“无库 - 静态链接库 - 动态链接库”的时代。
静态链接库(.lib)和动态链接库(.dll)都是共享代码的方式。如果采用了静态链接库,则无论你愿不愿意lib中的代码指令都被直接包含进了最终生成的.exe程序中。但若是使用了动态链接库,该DLL则不会被包含进.exe程序中,当.exe程序执行的时候,再“动态”的来引用或者卸载DLL。
2.动态链接库的特点
DLL文件可以被其他的语言所调用,例如C#或者Java等。
譬如Window下的存在大量的DLL文件,当我们用Java编写Swing界面或者其他语言如C#等都是可以进行调用的。
3.常见的动态链接库
我们在Window系统下面的system32文件夹中会看到kernel.dll、user32.dll和gdi32.dll。Window系统下的大多数API都是包含在这些DLL中。
kernel.dll中的函数主要处理内存管理和进程的调度。
user32.dll中的函数主要控制用户界面。
gdi32.dll中的函数主要负责图形方面的操作。