SDK
孟嘉歆
2023-12-01
其实很简单,
SDK
就是
Software Development Kit
的缩写,中文意思就是
“
软件开发工具包
”
。
这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做
“SDK”
。
具体到本文,我们后面只讨论广义
SDK
的一个子集
——
即开发
Windows
平台下的应用程序所使用的
SDK
。
呵呵,其实上面只是说了一个
SDK
大概的概念而已,理解什么是
SDK
真有这么容易吗?恐怕没这么简单!为了解释什么是
SDK
我们不得不引入
API
、动态链接库、导入库等等概念。
^
_^
,不要怕,也就是几个新的名词而已,我也是到了大学快结束的时候才体会到其实学习新知识就是在学习新名词、新概念和新术语。
首先要接触的是
“API”
,也就是
Application Programming Interface
,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的
API
而使操作系统去执行应用程序的命令(动作)。
DOS API
是系统程序的一部分,他们与系统一同被载入内存并且可以通过中断矢量表找到他们的入口,那么
Windows API
呢?要说明白这个问题就不得不引入我们下面要介绍得这个概念
——DLL
。
DLL
(又是一个缩写,感觉
IT
这个行业里三字头缩写特别多),即
Dynamic Link Library
(动态链接库)。我们经常会看到一些
.dll
格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟
.exe
文件不同的是,
.dll
文件不能直接执行,他们通常由
.exe
在执行时装入,内含有一些资源以及可执行代码等。其实
Windows
的三大模块就是以
DLL
的形式提供的(
Kernel32.dll
,
User32.dll
,
GDI32.dll
),里面就含有了
API
函数的执行代码。为了使用
DLL
中的
API
函数,我们必须要有
API
函数的声明(
.H
)和其导入库(
.LIB
),函数的原型声明不难理解,那么导入库又是做什么用的呢?我们暂时先这样理解:导入库是为了在
DLL
中找到
API
的入口点而使用的。
所以,为了使用
API
函数,我们就要有跟
API
所对应的
.H
和
.LIB
文件,而
SDK
正是提供了一整套开发
Windows
应用程序所需的相关文件、范例和工具的
“
工具包
”
。到此为止,我们才真正的解释清楚了
SDK
的含义。
由于
SDK
包含了使用
API
的必需资料,所以人们也常把仅使用
API
来编写
Windows
应用程序的开发方式叫做
“SDK
编程
”
。而
API
和
SDK
是开发
Windows
应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如
VCL
和
MFC
,虽然他们比起
“SDK
编程
”
来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用
API
函数.