软件开发工具包(Software Development Kit,SDK)
目录
|
软件开发工具包一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
软件开发工具包,只是简单的为某个程序设计语言提供应用程序接口的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
软件工程师通常从目标系统开发者那里获得软件开发包。为了鼓励开发者使用其系统或者语言,许多SDK是免费提供的。SDK经常可以直接从互联网下载。有时也被作为营销手段。例如,甲产品或许会免费提供构件SDK以鼓励人们使用它,从而会吸引更多人由于能免费为其编程而购买其构件。
SDK可能附带了使其不能在不兼容的许可证下开发软件的许可证。例如产品供应商提供一个专有的SDK可能与自由软件开发抵触。GPL能使SDK与专有软件开发近乎不兼容。LGPL下的SDK则没有这个问题。
为了认识sdk我们先来了解几个概念:API、动态链接库、导入库等等,“API”,也就是Application Programming Interface,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的API而使操作系统去执行应用程序的命令。DLL即DynamicLinkLibrary(动态链接库)。我们经常会看到一些.dll格式的文件,这些文件就是动态链接库文件.其实也是一种可执行文件格式。跟.exe文件不同的是。.dll文件不能直接执行,他们通常由.exe在执行时装入,内含有一些资源以及可执行代码等。为了使用DLL中的APl函数.我们必须要有API函数的声明(.H)和其导入库(.LIB),函数的原型声明头文件是对函数进行函数声明的文件,导入库是为了在DLL中找到API的入口点而使用的。
用VC编写Windows程序有两种:一是WindwosC方式(SDK),二是c++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等。SDK编程就是直接调用Windows的API进行编程,平时人们常说“用SDK写程序”就是指用Windows的API函数来写程序,API由成千上万个API函数组成。而MFC是API的封装,结合面向对象程序设计的继承性和多态性组成一个个的“类”,共由100多个类组成。在实际使用中,MFC比SDK方便。
SDK与MFC编码时的区别为,SDK编码时包括程序框架(比如消息处理器、主窗口消息回调函数等)在内的代码全为自己编制,但所利用的API等接口全来自SDK的头文件和库文件。有一种说法说“SDK只是MFC的一个真子集”是错误的,因为有部分API函数MFC没有封装,不过这些函数你在MFC程序中都可以使用。MFC主要封装的是界面、文件,Winlnet和线程等函数。SDK是基于c语言的,而MFC是基于c++的,这是最根本的区别。MFC除了封装API,最重要的是它的体系结构,它所使用的Doc/View结构是SDK中没有的,这种架构是比较特殊的。尽管Doc/View结构不是微软的发明,但它是MFC的特色。MFC最初是由微软设计,专供VC++用的,但是C++Builder也支持,C++Builder自己也有一个类库,叫VCL。以前的BorIand C++使用OWL类库。微软开发Windows时使用的是c语言,所以最初设计SDK时并没有考虑c++。