SDK,API和MFC区别【转】

SDK

很多人都认为SDK都是Microsoft公司提供的一个东东(具体什么东西我说了怕你就要关了这个网页了),其实不然,很多的软件公司和硬件公司在发布自己的产品的时候都会提供SDK,就比如说现在如火如荼的iPhon吧,他也同样发布了SDK,一些编程爱好者或是一些软件公司就会根据这些SDK开发出一系列软件放在iPhon上使用,也就是所谓的第三方开发,这样我们的手机也就不会显得太单调,SDK就是为这些编程爱好者或是软件公司提供调用iPhon操作系统中函数(API)的必须文件,比如说什么函数(API)说明文档,相关示例,帮助文件和函数的定义和说明,换句话说就是告诉你怎么调用iPone操作系统的底层函数来完成那些前面提到的一系列软件,因为一个操作系统底层的函数是不能随意被调用的,这也就提出了API的概念。

API

这个东东就是操作系统和上述一系列软件之间的一个桥梁,这些软件只用通过API才能调用操作系统底层的函数,来完成上述一系列软件的功能,而SDK就是告诉你怎么调用这些API的,这下好理解了吧

MFC

这个东西就更好办了,当然我们这里不能在用iPone做例子了,因为这个MFC是由Microsoft公司提供的,同样,windows 9X/2000/XP/Vista这些操作系统都有SDK和API,功能也和上面说的一样,windows 9X/2000/XP/Vista这些操作系统的API有2000多个,如果要全部掌握是不可能的也没有这个必要,要用的时候只要查查工作手册就好了,这么多的东西用来编写程序自然是十分的不方便,所以Microsoft就为程序员提供一个合集,就是MFC,他把API封装了起来,大概有100多个类,基本上包含了所有的API,而且MFC中API的组合也是最常用的,这样就省力多了吧!此外MFC中还增加了不少其他的东西

最后在说说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与Windows API是紧密联系的,它是一套帮助C语言程序员创建Windows应用程序的工具,该工具包的最新版本是Win32SDK。

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

2、主要差别

        MFC的编程方式是基于C++语法的面向对象的编程方式,但是Win32 API本身以及SDK却是基于C语言的过程式进行编程的,因此,SDK和MFC的最主要的不同之处也就是C和C++之间的差别。

    这种差别在编程的具体代码上的体现一般是:在MFC编程方式下,函数fun1()(在C++中应该称为“方法”,这里称函数只是为了和Win32 API函数对照)往往属于某个对象(CObject),称为对象的方法,是对象的一个成员,因此通过CObject.fun1()结构实现对某一对象的方法操作,方法中的参数项中并不需要一项指名是对哪个对象进行操作的参数项;而在SDK编程中,所利用的Win32 API函数fun2(Handle,…)一般都在函数的参数项中通过对象的句柄(Handle)指明是对哪个对象进行操作,因为该函数不属于任何一个对象,只有利用这种方式才能够使该函数与具体对象相关联

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值