欢迎来到天天文库
浏览记录
ID:37910598
大小:17.33 KB
页数:4页
时间:2019-06-02
《C++、VC++、MFC的区别和联系》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++、VC++、MFC的区别和联系:C++是纯粹的编程语言;VC++是编程环境,即平常所说的IDE;MFC是随微 软VC++开发工具发布的类库。详细说:MFC,微软基础类(MicrosoftFoundationClasses),实际上是微软提供 的用于在C++环境下编写应用程序的一个框架和引擎;VC++是WinDOS下开发人员 使用的专业C++SDK(SDK,StandardSoftWareDevelopKit,专业软件开发平台) ,MFC就是挂在它之上的一个辅助软件开发包。MFC作为与VC++血肉相连的部分( 注意C++和VC++的区别:C++是一种程序设计语言,是一种大家都承认的软
2、件编制 的通用规范,而VC++只是一个编译器,或者说是一种“编译器+源程序编辑器” 的IDE,这跟Pascal和Delphi的关系是一个道理:Pascal是Delphi的语言基础, Delphi使用Pascal规范来进行Win下应用程序的开发和编译。但不同于Basic语言 和VB的关系:Basic语言在VB开发出来被应用的年代已经成了Basic语言的新规范 ,VB新加的Basic语言要素,如面向对象程序设计的要素,是一种性质上的飞跃 ,使VB既是一个IDE,又成长成一个新的程序设计语言),MFC同BorlandC++集 成的VCL一样,是一个非外挂式的软件包、类库,只不过MFC类是微软为
3、VC++专配 的罢了。MFC是WinAPI与C++的结合。API,即微软提供的WinDOS下应用程序的编程 语言接口,是一种软件编程的规范,但本身不是一种程序开发语言,可以允许用 户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的 编程语言来进行对WinDOS下应用程序的开发,使这些被开发出来的应用程序能在 WinDOS下运行。比如VB,VC++,Java,Dehpi编程语言函数本质上全部源于API, 因此用它们开发出来的应用程序都能工作在WinOS的消息机制和绘图里,遵守 WinDOS作为一个操作系统的内部实现。这其实也是一种必要,微软如果不提供 API,这个
4、世上对Win编程的工作就不会存在,微软的产品就会迅速从时尚变成垃 圾,上面说到MFC是微软对API函数的专用C++封装,这种结合一方面让用户使用 微软的专业C++SDK来进行Win下应用程序的开发变得容易,因为MFC是对API的封 装,微软做了大量的工作,隐藏了好多程序开发人员在Win下用C++&MFC编制软 件时的大量内节,如应用程序实现消息的处理,设备环境绘图,这种结合是以方 便为目的的,必定要付出一定代价(这是微软的一向作风),因此就造成了MFC 对类封装中的一定程度的的冗余和迂回,但这是可以接受的。最后要明白MFC不只是一个功能单纯的界面开发系统。它提供的类绝大部 分用来进行界面
5、开发,关联一个窗口的动作,但它提供的类中有好多类不与一个 窗口关联,即类的作用不是一个界面类,不实现对一个窗口对象的控制(如创建 、销毁),而是一些在WinDOS(用MFC编写的程序绝大部分都在WinDOS中运行) 中实现内部处理的类,如数据库的管理类等。学习中最应花费时间的是消息和设 备环境,对C++和MFC的学习中最难的部分是指针,C++面向对像程序设计的其它 部分,如数据类型、流程控制都不难。建议学习数据结构C++版。MFC是微软封装了的API。什么意思呢?windows作为一个提供功能强大的 应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直 接使用win
6、dows的接口函数API)对于程序员来说非常的困难,因为,API函数实 在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。MFC是面 向对象程序设计与Applicationframework的完美结合,他将传统的API进行了分 类封装,并且为你创建了程序的一般框架。MFC是对WindowsAPI的封装,大大简 化了我们的工作;学VC主要就是要学MFC,大约有100多个类,但常用的也就二三 十个。应该象背4级单词一样将这些常用类搞懂;当然不要死记,要通过看帮助 、看例子、动手练习来学会它们;而且,并非每个类的内部的所有函数都要学会 ,要日积月累。如果真的想成为高手,做个笔记本把
7、自己认为重要的类、函数记 下来,随时学习,也是很好的突击方法。有趣的是,MFC使用“Afx”作为所有的全局函数的前缀,“afx”作为全 局变量的前缀。因为在MFC的早期开发阶段它叫“ApplicationFramework Extensions”缩写为“AFX”。AFX提供了对WindowsAPI的高度抽象,建立了全 新的面向对象的AFXAPI,但它对于新手来说太复杂了,所以AFX小组不得不重新 开始。后来他们创建了一组C++类,这
此文档下载收益归作者所有