什么是SDK?

4个月前 (10-15 03:20)阅读5回复0
xxhh
xxhh
  • 管理员
  • 注册排名4
  • 经验值129915
  • 级别管理员
  • 主题25983
  • 回复0
楼主

  经常会在手艺论坛里面看到类似如许的帖子:"什么是 SDK?","请高手讲一下 SDK 是什么东东?"。。。。。。

其实很简单,SDK 就是 Software Development Kit 的缩写,中辞意思就是"软件开发东西包"。那是一个笼盖面相当普遍的名词,能够那么说:辅助开发某一类软件的相关文档、规范和东西的集合都能够叫做 "SDK"。

  详细到我们那个系列教程,我们后面只讨论广义 SDK 的一个子集——即开发 Windows 平台下的应用法式所利用的 SDK。

呵呵,其实上面只是说了一个 SDK 大要的概念罢了,理解什么是 SDK 实有那么容易吗?恐怕没那么简单!为领会释什么是 SDK 我们不能不引入 API、动态链接库、导入库等等概念。

  ^_^,不要怕,也就是几个新的名词罢了,我也是到了大学快完毕的时候才体味到其实进修新常识就是在进修新名词、新概念和新术语。

起首要接触的是"API",也就是 Application Programming Interface,其实就是操做系统留给应用法式的一个挪用接口,应用法式通过挪用操做系统的 API 而使操做系统去施行应用法式的号令(动做)。

  其实早在 DOS 时代就有 API 的概念,只不外阿谁时候的 API 是以中断挪用的形式(INT 21h)供给的,在 DOS 下跑的应用法式都间接或间接的通过中断挪用来利用操做系统功用,好比将 AH 置为 30h 后挪用 INT 21h 就能够得到 DOS 操做系统的版本号。

  而在 Windows 中,系统 API 是以函数挪用的体例供给的。同样是获得操做系统的版本号,在 Windows 中你所要做的就是挪用 GetVersionEx() 函数。能够那么说,DOS API 是"Thinking in 汇编语言"的,而 Windows API 则是"Thinking in 高级语言"的。

  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 函数

希望您满意。

0
回帖

什么是SDK? 期待您的回复!

取消