微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个(也是微软产品的唯一一个)应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC是微软公司实现的一个C++类库,主要封装了大部分的windows API函数,所以在MFC中我们可以直接调用 Windows API,同时需要引用对应的头文件或库文件;另外,MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮我们产生许多文件,同时它使用了mfcxx.dll。
MFC的优点:可以用面向对象的方法来调用Windows API,以及能够更加便捷地开发应用程序。
MFC的缺点:虽然MFC的源代码对用户是完全开放的,但是MFC的一些封装过程过于复杂,以致于新用户很难迅速掌握MFC的应用程序框架,以及在调试中定位问题的位置。
MFC与C++的关系: C++是纯粹的编程语言;MFC是随微软VC++ 开发工具宣布的类库,MFC是Win API与C++的结合,MFC是微软提供的一个C++的编程框架。两者的关系相当于京剧和汉语的关系。
一些其他的相关知识:
⋄ \diamond ⋄ API,即微软供给的Windows下应用程序的编程语言接口,是一种软件编程的规范,但本身不是一种程序开发语言,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发,使这些被开发出来的应用程序能在Windows下运行。
⋄ \diamond ⋄ SDK(Software Development Kit, 即软件开发工具包 )一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。举个例子,假如我们要开发无线信号发射器,在购买芯片或主板的同时,厂商同时会提供主板的SDK开发包,以方便我们对主板的编程操作。这个开发包通常会包含主板的API函数、帮助文档、使用手册、辅助工具等资源,也就是定义里面说的,SDK实际上一个开发所需资源的一个集合。
MFC与QT的区别:
1. MFC适合Windows界面开发,QT适合嵌入式设备界面开发。
2. MFC 和QT就好比手动档车与自动档车一样,前者开发软件太累,但可控性更加高些,前者比后者交互性更强。
3. MFC是对Windows API的封装,QT是自己的框架,跨平台移植性好,设计模式较为友好。
4. MFC古典框架,QT现今流行的跨平台框架。