Microsoft Foundation Classes, 简称MFC,是一个微软公司提供的类别库(class libraries),以C 类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量句柄封装类和很多Windows的内建控制项和组件。 目录 [隐藏] 1 发展 2 MFC的优点 3 MFC的缺点 4 第三方支持 5 参考 [编辑] 发展 MFC是在1992年随微软的Microsoft C/C 7。 0编译器发布的,用於面向16位Windows的软件开发。Borland几乎同时发布了面向Turbo C编译器的OWL,并且在一开始比MFC更具有市场占有率,但是在Borland发布了一个不向下相容的应用程序框架之后,它丧失了很多市场占有率;在Borland从微软获得发布MFC的授权之后它的市场占有率进一步减少。 随着Visual Basic和Visual Studio 。NET的发布,曾经一度被微软重点推荐的MFC被Visual Basic、C#、Windows Forms抢走了不少市场占有率,但是MFC继续在非托管软件开发中占据重要地位。 在托管开发方面,MFC中也包括对Windows Forms和托管/非托管互操作的封装。微软计划在Windows Vista(代号Longhorn)发布之后继续在MFC中增加对Windows Vista API,以及Windows Presentation Framework (代号Avalon)的支持。 在可见的未来,微软对MFC的支持不会停止。 [编辑] MFC的优点 MFC的主要优点是可以用物件导向的方法来调用Windows API,以及应用程序开发的便捷。 MFC将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便於自定义的应用程序框架。同时,在Visual C 内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间,使用类向导可以生成从hello world这样的简单程序到活动文档伺服器这样的复杂程序。 MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。 [编辑] MFC的缺点 虽然MFC的原始码对用户是完全开放的,但是MFC的一些封装过程过於复杂,以致於新用户很难迅速掌握MFC的应用程序框架,以及在调试中定位问题的位置。 同时,很多MFC对象不是执行绪安全的,致使在跨执行绪访问MFC对象时需要编写额外的代码。另外,MFC的很多类依赖於应用程序向导生成的代码,使得在使用Visual C 中其他类型的应用程序向导生成的工程中添加MFC支持的难度大大增加。 [编辑] 第三方支持 很多商用类库在MFC的基础上进一步实现了皮肤、渐变风格、多顶层窗口程序、属性列表等较受欢迎的功能;同时,在C 线上社区中,很大一部分开放的原始码也是基於MFC的。