SDK和MFC的区别

SDK 就是Software Development Kit 软件开发包
MFC 就是Microsoft Foundation Classes 微软函数类库


MFC是对API函数的封装,也算是vc里的SDK

用VC编写Windows程序有两种:

1. Windwos c方式(SDK)。

2.C++方式:即对SDK函数进行包装,如VC的MFC,BCB的OWL等。

SDK编程就是直接调用Windows的API进行编程,平时人们常说"用SDK写程序"就是指用Windows的API函数来写程序,API由上千个API函数组成(Win95的API有两千多个)。

而MFC是API的封闭,结合面向对象程序设计的继承性和多态性组成一个个的"类",共由一百多个类组成。尽管MFC比SDK方便,但要深入VC,直接去学MFC却是不明智的选择。只有在熟悉了MFC的运行机制的情况下,才有可能深入下去。所以学VC最好是先学用SDK编写程序,在此期间深入掌握Windows操作系统的工作原理和各API函数的应用,然后再深入MFC. SDK是基于C语言的,而MFC是基于C++的,这是最根本的区别



WIN32 SDK是一套由微软提供的开发Windows应用程序的工具,它包括声明WIN32 API的头文件(例如Windows.h)、用于与Windows系统DLL连接的库、一个C++编译器以及链接器。WIN32 SDK可以从微软免费下载,它以工作行方式运行,你需要建立自己的makefile。
MFC是一个C++类库,它封装了很多对WIN32 API的调用,同时提供了一个支持DOC/VIEW的运行框架,使得程序员编写重复的代码。但是无论如何,MFC在底层仍然调用WIN32 API来完成工作,MFC提供有全部的源代码,你可以看到MFC的工作过程。基本上你可以认为MFC工作于WIN32 SDK之上。在MFC中你仍然可以直接调用WIN32 API。


MFC主要封装的是界面、文件、WinInet和线程等函数。 MFC除了封装API,最重要的是它的体系结构,它所使用的Doc/View结构是SDK中没有的,这种架构是比较特殊的。尽管Doc/View结构不是微软的发明,但它是MFC的特色。微软开发Windows时使用的是C语言,所以最初设计SDK时并没有考虑C++。

你可能感兴趣的:(SDK和MFC的区别)