静态库和动态库的区别

调用静态库的函数,静态库的源码会直接嵌入到你的程序中,算你程序的代码。
但是如果你调用的是动态库的函数,那么动态库的源码并不会嵌入到你的程序中,你程序中只记录动态库中的一个地址,通过地址去找到对应的函数。

Windows动态链接库的概念

Windows环境中运行的程序可以共享存储在所谓动态链接库(Dynamic-Link Libraries,DLL)文件中的例程。Windows 提供了在运行时把程序和动态链接库中的例程链接起来的机制。其实Windows本身就是一套动态链接程序库。

动态链接过程

Windows工作原理的中心思想就是“动态链接”概念。Windows自身带有一大套函数,应用程序就是通过调用这些函数来实现它的用户界面和在屏幕上显示文本与图形的。这些函数都是在动态链接库里实现的。这些文件的名称都带有后缀.DLL,或有时带有后缀.EXE.在Windows98中,这些文件通常放在\WINDOWS\SYSTEM子目录下,而在WindowsNT中,则放在\WINNT\SYSTEM和\WINNT\SYSTEM32子目录下。

内核(kernel) ,用户(User)以及GDI.

早期Windows的大部分只是实现了3个动态链接库。他们分别代表了Windows 的3个主要的子系统,即内核(kernel) ,用户(user) 以及GDI.虽然新版Windows中的子系统增加了不少,但是通常Windows程序调用的大部分函数实际上仍然以这3个模块为主。

内核(kernel) 的作用?
内核(在16位的KRNL386.exe及32位的KERNEL32.DLL中实现)负责操作系统的那些传统工作,包括内存管理、文件输入/输出及任务管理等。