SDK:
SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
SDK,Software Development Kit 的缩写,中文即“
软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。
SDK是一些被
软件工程师用于为特定的
软件包、软件框架、硬件平台、
操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发
Windows平台下的应用程序所使用的SDK。它可以简单的为某个
程序设计语言提供
应用程序接口
API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
为了鼓励开发者使用其系统或者语言,许多 SDK 是免费提供的。
软件工程师通常从目标系统开发者那里获得软件开发包,也可以直接从
互联网下载,有时也被作为营销手段。例如,营销公司会免费提供构件SDK 以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。
SDK 可能附带了使其不能在不兼容的许可证下开发
软件的许可证。例如产品供应商提供一个专有的SDK可能与自由
软件开发抵触。
GPL能使SDK与专有
软件开发近乎不兼容。
LGPL下的SDK则没有这个问题。
API:
API(Application Programming Interface,应用编程接口)其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。其实早在
DOS时代就有 API 的概念,只不过那个时候的 API 是以中断调用的形式(INT 21h)提供的,在 DOS 下跑的应用程序都直接或间接的通过中断调用来使用操作系统功能,
比如将 AH 置为 30h后调用INT 21h就可以得到DOS 操作系统的版本号。而在 Windows 中,系统 API 是以
函数调用的方式提供的。同样是取得操作系统的版本号,在 Windows 中你所要做的就是调用 GetVersionEx() 函数。
DLL:
DLL,即 Dynamic Link Library(
动态链接库)。在windows环境下含有大量 .
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 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写
Windows 应用程序的开发方式叫做“SDK
编程”。而
API和 SDK 是开发
Windows应用程序所必需的东西,所以其它
编程框架和类库都是建立在它们之上的,
比如VCL 和
MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数 。
(资源来自于:百度百科)