SDK

SDK 就是 Software Development Kit 的缩写,中文意思就是“软件开发工具包”。即辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。

API

API(Application Programming Interface,应用编程 接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的  API而使操作系统去执行应用程序的 命令(动作)。
其实早在 DOS时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在  DOS下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,比如将  AH置为 30h后调用 INT 21h就可以得到DOS 操作系统的版本号。而在  Windows 中,系统 API 是以 函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx()  函数
可以这么说, DOSAPI 是 “Thinking in 汇编语言” 的,而 Windows API 则是 “Thinking in 高级语言” 的。
DOS API是系统程序的一部分,他们与系统一同被载入内存并且可以通过 中断矢量表找到他们的入口,那么 什么是Windows API 呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念—— DLL

DLL

DLL,即 Dynamic Link Library( 动态链接库)。在  Windows 环境下含有大量 . dll格式的文件,这些文件就是 动态链接库文件,其实也是一种 可执行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及 可执行代码等。其实 Windows 的三大模块就是以DLL的形式提供的( Kernel32.dllUser32.dllGDI32.dll),里面就含有了 API函数的执行代码。为了使用 DLL 中的 API 函数, 必须要有 API 函数的声明(.h)和其 导入库(.lib),导入库可以先这样理解:导入库是为了在 DLL 中找到 API 的 入口点而使用的。为了使用  API 函数,我们就要有跟 API 所对应的 .h 和 .lib 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”。
 
SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写  Windows 应用程序的开发方式叫做 “SDK编程”。而API和 SDK 是开发Windows应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如VCL 和 MFC,虽然他们比起 “SDK 编程” 来有着更高的 抽象度,但这丝毫不妨碍我们在需要的时候随时直接调用  API 函数 。
 
 
dll库与lib库的区别:
第一:.DLL是动态链接库,而.LIB是静态链接库
dll是个编译好的程序,调用时可以直接调用其中的函数,不参加工程的编译. 而lib应该说是一个程序集, 只是把一些相应的函数总结在一起, 如果调用lib中的函数,在工程编译时,这些调用的函数都将参加编译.
第二:从内存管理的角度来看,lib必须被链接到主程序中,主程序进入内存,lib也同时进入内存。而dll则是需要用到它的时候由操作系统调入内存。从复用性的角度来看,lib因为必须参加编译,所以复用性就不如DLL啦
 


 

猜你喜欢

转载自www.cnblogs.com/zzdbullet/p/9486494.html
SDK