一般结束C/C++编程的语法学习后,我们都会开始进行一些项目实践,以便巩固和提高我们的开发水平,在开发过程中我们都会用的到SDK,API以及MFC,一般的初学者都会在上面晕头转向,到底他们之间又是区别呢,Xushine研究院给大家浅谈下API SDK MFC,权当抛砖引玉~
我们先来看看什么是API 、DK、MFC
API
API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。其实就是操作系统和上述一系列软件之间的一个桥梁,这些软件只用通过API才能调用操作系统底层的函数,来完成上述一系列软件的功能,而SDK就是告诉你怎么调用这些API的,通常API包括了Windows和Linux下的API~下面我们来看看SDK

SDK
SDK(SoftwareDevelopmentKit,即软件开发工具包)一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。很多初学者都认为SDK就是Microsoft公司提供的一个开发包,其实并不是这样,很多的软件公司和硬件公司在发布自己的产品的时候都会提供SDK,就比如说现在很流行的iPhone、Android、Windows Phone7,他们同样发布了SDK,以便开发者更快更好的在这些平台上开发,也就是所谓的第三方开发,这样我们的手机也就不会显得太单调,SDK就是为这些编程爱好者或是软件公司提供调用iPhon操作系统中函数(API)的必须文件,比如说什么函数(API)说明文档,相关示例,帮助文件和函数的定义和说明,换句话说就是告诉你怎么调用iPone操作系统的底层函数来完成那些前面提到的一系列软件,因为一个操作系统底层的函数是不能随意被调用的,这也就提出了API的概念.

MFC
MFC(MicrosoftFoundationClasses),是一个微软公司提供的类库(classlibraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。这就是正经的微软的东西了,因为这个MFC是由Microsoft公司提供的,同样,windows9X/2000/XP/Vista/2008/7/8这些操作系统都有SDK和API,功能也和上面说的一样,windows9X/2000/XP/Vista/2008/7/8这些操作系统的API有2000多个,如果要全部掌握是不可能的也没有这个必要,要用的时候只要查查工作手册就好了,这么多的东西用来编写程序自然是十分的不方便,所以Microsoft就为程序员提供一个合集,就是MFC,他把API封装了起来,大概有100多个类,基本上包含了所有的API,而且MFC中API的组合也是最常用的,这样就省力多了吧!此外MFC中还增加了不少其他的东西

我们来看看他们之间的区别:
     MFC的编程方式是基于C++语法的面向对象的编程方式,但是Win32API本身以及SDK却是基于C语言的过程式进行编程的,因此,SDK和MFC的最主要的不同之处也就是C和C++之间的差别。
    这种差别在编程的具体代码上的体现一般是:在MFC编程方式下,函数fun1()(在C++中应该称为“方法”,这里称函数只是为了和Win32 API函数对照)往往属于某个对象(CObject),称为对象的方法,是对象的一个成员,因此通过CObject.fun1()结构实现对某一对象的方法操作,方法中的参数项中并不需要一项指名是对哪个对象进行操作的参数项;而在SDK编程中,所利用的Win32API函数fun2(Handle,…)一般都在函数的参数项中通过对象的句柄(Handle)指明是对哪个对象进行操作,因为该函数不属于任何一个对象,只有利用这种方式才能够使该函数与具体对象相关联

最后再来谈谈关于SDK编程,其实就是使用c语言来编写能在windows操作系统中能运行的程序,并且是有界面,而MFC就是用c++来编程了。

SDK是软件开发包;
而mfc是对api封装后的类库,他是微软公司提供的

MFC封装了决大多数的API函数(MFC把所有我们常用到和不常用到的API封装起来,用类的形式,构成了一个框架),而且为了让曾经的API程序员方便记忆和使用,名字也和API的相同,但是是有区别的。

你需要借助MSDN,比如在MSDN里输入GetWindow,索引一下,就会发现同名的函数很多,如果是MFC的函数会显示microsoft foundation class library and templates.并且还会显示函数是什么类的成员,比如CDC::GetWindow就是CDC类的一个函数。如果是API函数会显示windows user interface:plantform sdk,并且没有类名。当然也可能是Windows ce referance,初学者恐怕不会涉及Windows CE。好了就这些,希望对你有帮助
需要注意的是C的环境是面向过程的所以不支持MFC,MFC只封装在C++里,MFC无法在C环境中使用

Win32包括三个基本的内核:GDI32、KERNEL32和USER32,Windows API就是依靠这三个内核组件提供了Windows的大部分函数。它们实质上都是动态链接库(DLL)文件,不能单独运行。

       Windows的SDK程序设计就是API方式的程序设计。SDK与WindowsAPI是紧密联系的,它是一套帮助C语言程序员创建Windows应用程序的工具,该工具包的最新版本是Win32SDK。

    尽管MFC提供了对Win32 API比较完整的封装,但是在某些情况下更适于直接调用API,因为有时利用API可以获得更高的效率,并有着更大的自由度。

3 对 “浅析API,SDK和MFC”的想法;

评论被关闭。