【MFC基础教程】API与SDK的区别与联系

来源:互联网 发布:全国交通道路网络数据 编辑:程序博客网 时间:2024/05/16 05:03

  SDK就犹如大名鼎鼎的天上人间,API就是里面工作的姐姐们。没有天上人间,姐姐们还是可以在晚上辛勤的工作嘛,正所谓“起的比鸡早,睡得比鸡晚”嘛。但是没有了姐姐们,天上人间就没法创造GDP了。

                                           ——小宝


  小宝这两天听到女朋友萌姐说的最多的就是API与SDK,起初我通过这两个缩写的英文全称能够基本区分它们的概念,可是,与萌姐讨论多了,就发现这两个概念好像有着千丝万缕的联系但是也是有区别的,而具体的理论概念萌姐也不能说出十分详细的理解。

  没关系,我们在CSDN上写东东,不会就可以在这里的论坛上提问或者查询嘛。来,听听大神们是怎么理解API与SDK的吧。



Kusk:API可以看作一种SDK。


fen_min:API(Application Programming Interface )是操作系统提供的编程接口,在Windows中以Dll文件提供USER32.dll,Kernel32.dll等(Windows 3.x中为.Exe文件,但仍然是动态链接库,只是文件名后缀不一样而已)提供了程序运行时要用的功能函数;而SDK是厂家提供的开发工具库(Software Development Kit),不在操作系统中,是另外提供的,其中包含了开发时要用的调试,编译工具等,以及一些文档。做程序时使用SDK,但程序最终要调用API来实现其功能。


Kendiv:不错,能不能再详细些,我的感觉,SDK何API的关系似乎界限不太明显了。


fen_min:你可以这样想,API就是一个平台,是操作系统给的,其他的进程(不包括系统进程,ring0级的)都通过调用这个平台给的函数接口来实现所要的功能,比如实现窗口,打开文件等,而不可能自己去实现这些,当然操作系统也不会同意(:。而SDK只是一个工具包而已,无他,只是提供你完成一个操作系统上能够运行的程序所需的工具而已。仔细看一看它们的英文单词,可能会对你理解这些有好处。


doomleo:sdk主要用来区分MFC,可以这么说,以API为主开发的软件可环境就可以称为SDK


_____:偏激一点讲

没有SDK,用API你照样可以写程序;没有API,只有SDK,你就不能些程序了


azs:API是指通过DLL输出函数为使用该DLL的程序提供的编程接口,不仅包括MS提供的,也包括其他厂商提供的,我们自己做的DLL提供给别人使用也叫API,不过在windows平台下一般提到API,均指MS专有的API,所以咬文嚼字的人会纠正你:win32 API。

操作系统专门提供的叫系统服务,那不叫API,不过有人说可以看作是API,大概可以吧,对于系统服务,一般程序用不到,可能只有驱动程序之类的会用到。

SDK字面意思是指软件开发包,其实就是一个二次开发平台,就是说他把下面的东西都封装了,不希望甚至根本就不让你看到底下的内容,只允许使用它提供的API做开发,和API的性质差不多,最初也不是但指MS的,任意厂商提供的开发环境都叫SDK,但后来在windows平台下一般提到SDK,均指MS专有的SDK环境


  啊,这下小宝明白了。总结说来呢,API就是系统提供的一系列接口函数,而SDK呢,就是开放所需资源的一种集合。那举个栗子呢,SDK就犹如大名鼎鼎的天上人间,API就是里面工作的姐姐们。没有天上人间,姐姐们还是可以在晚上辛勤的工作嘛,正所谓“起的比鸡早,睡得比鸡晚”嘛。但是没有了姐姐们,天上人间就没法创造GDP了。


参考原文:http://bbs.csdn.net/topics/426083

原创粉丝点击