`
chinamming
  • 浏览: 141528 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

vc和MFC的详细历史

 
阅读更多

VisualC++ 1.0:C++编译器的终结者

唯技术”思想有时能使陷入一种困境,作为一种编程工具(也可以认为是一种技术),Visual C++经历了许多风波和变革,但纵观目前几乎所以有书籍和文章,很少对这种技术进行“跳出圈外”的思考,这也使我写这篇文章感到无源的苦恼。细想之后,也颇为感慨,愿借此文以激众家之思!

  Visual C++的发展与C/C++语言、Windows的历程是分不开的。

  在C语言推出之前,操作系统等系统软件主要是用汇编语言编写的(如UNIX操作系统)。由于汇编语言依赖于计算机硬件,因此程序的可移植性和可读性就比较差。为了提高程序的可读性和可移植性,并能实现汇编语言的某些功能(如汇编语言可以直接对硬件进行操作、对内存地址进行操作和位操作等)。于是,C语言便应运而生了。

  最初的C语言只是为描述和实现UNIX操作系统而提供的一种程序设计语言。1973年,贝尔实验室的K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上的代码用C语言改写(即UNIX第五版)。后来C语言又作了多次改进,1978年以后,C语言已先后移植到大、中、小及微型机上,现在C语言已成为风靡全球的计算机程序设计语言。

  到了80年代,美国AT&T贝尔实验室的Bjarne Stroustrup在C语言的基础上推出了C++程序设计语言。由于C++提出了把数据和在数据之上的操作封装在一起的类、对象和方法的机制,并通过派生、继承、重载和多态性等特征,实现了人们期待已久的软件复用和自动生成。这使得软件,特别是大型复杂软件的构造和维护变得更加有效和容易,并使软件开发能更自然地反映事物的本质,从而大大提高了软件的开发效率和质量。

  在C/C++发展过程中,C/C++的开发工具也是发展迅速。

  早期的程序员仍然不会忘记TurboPascal的集成开发环境IDE的魅力,IDE能使编辑器和编译器共同工作,在编辑器中写下源代码,使用Compile(编译)命令来启动编译器,当编译器发现错误时,它将编辑光标定位到出错语句处,以便于改正。IDE为程序开发提供一个整体环境。

  C语言产生后,Turbo Pascal发行了Turbo C,Microsoft相应地推出Quick C。虽然Quick C和Turbo C给C编程引进许多内容,但却没有对开发者产生永久性的影响(尽管Turbo C目前仍被用于现行教学中),其主要原因是二者的编辑器都不怎么好(Quick C编辑器后来合并到Microsoft Quick Basic中,现在它作为DOS编辑器Edit.com仍存在于Microsoft Windows 95中),其次,DOS下IDE占据大量内存,使程序运行空间变得很小。

  编辑器之争

  Visual C++在目前的C/C++编辑器占统治地位不是偶然的,这是由微软的正确和对手的错误造成。

  翻开C/C++编辑器历史,战火风云。当Microsoft Visual C++1.0 在C/C++开发工具市场获得了空前的成功之后,Borland的Philippe Kahn也许在和Microsoft的FoxPro For Window一役中被吓到了,因此急于在Visual C/C++ 1.0之后立刻推出新的Borland C/C++以扳回颜面。由于当时Borland失去了许多的人才,Borland C/C++ 4.0仓促推出后,由于没有在最后阶段修正许多的错误,加上加入太多的先进技术,造成了整个产品的不稳定,从而铸成大错,陷入窘境。

  在BorlandC/C++ 4.0失利之后,Borland为挽回局面,立刻着手开发Borland C/++ 4.0的Patch,当时是称为Service Pack。但是在4.01版中并没有完全的解决问题,一直要到4.02才稍为解决一些严重的问题,无奈市场已经起了巨大的变化。

  自BorlandC/C++ 4.0一役大败之后,VisualC/C++虽取得了胜利,但此时在C/C++市场上也加入了另外两个坚强的对手,那就是Symantec C/C++和Watcom C/C++。

  SymantecC/C++的Think C/C++在Macintosh上便是非常有名的编译器,因此早在C/C++领域便有深厚的基础。在Symantec并购了PC上第一个C/C++编译器Zortech C/C++之后,Symantec决定进入了PC的开发工具市场。恰逢Borland C/C++ 3.1的幕后支柱Eugene Wang刚好和Philippe Kahn闹翻,离开了Borland。Symantec重金邀请Eugene Wang,1993年左右,Symantec推出了第一个Symantec C/C++版本,立刻便获得了市场的好评。Symantec C/C++不断完善,以最完美的、先进的集成开发环境获得市场的高度认同。

  WatcomC/C++是以在DOS下能够产生最好的最优化程序代码而闻名的,再加入当时最有名的DOSExtender厂商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在专业的C/C++程序员以及系统程序员心中是第一品牌的C/C++开发工具。为了顺应DOS向Windows过度,也为了生存,大约也是在1993,1994年左右Watcom终于推出第一个基于Window平台的C/C++开发工具。虽然没有什么特色,但却以编译器的优点成为四大C/C++开发工具之一。

  但是Symantec和Watcom由于自身的实力和发展方向,在1993年初选择了和Microsoft签约,使用MFC做为它们的开发工具的C/C++ Framework。而Borland选择了坚持开发自己的C/C++ Framework,这就是OWL。

  1994年,Microsoft为了对抗Apple和IBM OS2,推出OLE(Object Linking And Embedding)技术,该技术由于可以让Window平台的文件能够内嵌在不同的应用程序中并且能在应用程序中进行编辑,因此“深入人心”。尽管该技术被后来证明是失败的技术,但却使Microsoft取得了C/C++开发工具的胜利。

  由于OLE的复杂性使得Borland无法在OWL中实现此功能,因而就造成了市场的一些负面影响。Symantec和Watcom由于签约的是MFC 1.x的版本,而OLE是在MFC 2.0中的技术,Symantec和Watcom吃了大亏。不久以后,Symantec放弃PC的C/C++开发工具市场,转而开始研发Java开发工具。而Watcom则被新兴而起的Sybase并购,从此消失。

  为了迎合市场,支持OLE技术,Borland在Borland C/C++ 4.5的OWL 2.5中推出OCF,但由于没有MFC的OLE能力强大,也逐渐败下阵来。虽然后来Borland继续推出了Borland C/C++ 5.0,5.02,但终因品质和市场原因而结束。

  随后,Windows 3.0出现了。Windows 3.0尤其是3.1,为个人计算机引进了真正的IDE时代。但是,Microsoft却把精力更多地集中在C编译器的内部支持上,而不是把它的界面升级到一个新的时代。尽管如此,MicrosoftC/C++ 7.0却引入了对C++的支持,并引进了Microsoft FoundationClass库1.0版,完善了源代码。Microsoft C/C++ 8.0成为真正的Windows IDE,这就是Visual C++ 1.0。

  Visual C++1.5之后,微软决定不再将花更多的努力去支持16位编程上。虽然,Visual C++ 2.0仍提供对16位的支持,但它仅用来创建32位程序。

  Visual C++是没有3.0的,版本号直接从2.0跳到4.0,以使Visual C++和MFC同步,但这种同步是短暂的,后来,Visual C++和MFC又使用了不同的版本号。

  Visual C++4.0引入了Internet的支持,并为Internet编程而设计的新类库。

  Visual C++5.0还增加了一些新类,但主要是集中在界面的改善上,并提供一个更好的在线帮助系统、更高级的宏能力和对在开发者组内进行类和其它代码共享的支持。5.0中还合并了Active TemplateLibrary(ATL),并显著地改善了编译器优化代码的能力。

  1998年9月,Microsoft推出了Visual C++ 6.0,它除了保留5.0对ActiveX的支持外,还支持DHTML,更新了MFC及ATL的类库,并对模板也有扩充,用户可以方便地开发出类似Web浏览器界面的应用程序。

  2000年7月,在PDC(Professional Developers Conference)会议上,Microsoft宣布启动.NET方案,推出了一个全新的开发平台Visual Studio.NET,这是Microsoft技术方向的重大转变。在这个平台上,包括了Visual C++、Visual Basic、Visual FoxPro和C#等开发工具。
2002年2月推出的Visual Studio.NET虽然有许多不近人意的地方,但是却让我们领略了它的强大之处。Visual C++.NET除对Microsoft.NET Framework支持和界面及文档的语言本地化这两个最显著特点外,它与Visual C++6.0相比,还包含其他许多新的特性,如Web应用程序、C++托管扩展、ATL、DCOM、MFC等方面的增强以及ATL Server、的支持等。

  2002年底推出Visual Studio .NET 2002,2003年4月,Visual Studio .NET 2003发布。Visual Studio .NET 2003 包含 Windows .NET Framework 的一个增强版本,并将移动和嵌入式设备,如 Pocket PC 和其他采用 Microsoft Windows CE.NET 操作系统的设备,带入了 .NET。

  Visual C++.NET 2003对2002版本进行了许多更新和优化,除界面、库作了改进之外,还对在 C++托管扩展中创建的Windows 窗体应用程序提供设计器的支持以及提供对项目中生成自动化模型的支持等。

  MFC和Visual C++

  Visual C++的核心是Microsoft基础类库,即通常所说的MFC。MFC相当彻底的封装了Win32软件开发工具包(Software Development Kit,即通常所说的SDK)中的结构、功能,它为编程者提供了一个应用程序框架,这个应用程序框架为编程者完成了很多Windows编程中的例行性工作,如管理窗口、菜单和对话框,执行基本的输入和输出、使用集合类来保存数据对象等等,并且,MFC使得在程序中使用很多过去很专业、很复杂的编程课题,如ActiveX、OLE、本地数据库和开放式数据库互联(Open DatabaseConnectivity,简写为ODBC)、Windows套接字和Internet应用程序设计等,以及其它的应用程序界面特性,如属性页(也叫标签对话框)、打印和打印预览、浮动的和可定制的工具条变得更加的容易。

  早在1989年,Microsoft的程序员们开始试图将C++和面向对象的编程概念应用于Windows编程中,以编写出一个可以使Windows编程更加简便的应用程序框架。他们把这个应用程序框架叫做AFX (AFX这个词来源于Application Framework,但奇怪的是这个词组中并没有包含“X”这个字母)。直到今天,AFX小组早已不存在了,AFX这个名称也于1994年初不再使用,但在Visual C++和MFC中,AFX的影子却随处可见,很多全局函数、结构和宏的标识符都被加上了AFX的前缀。

  最初的AFX版本在经过一年的艰苦之后诞生,却未能被大多数Windows程序员所接受。AFX的确是经过了精心的规划和编码,并且,它也提供了对Windows API的高度抽象,建立了全新的面向对象的AFX API,但最要命的是AFX API库根本不兼容于现有的Windows API。由此导致的最严重后果是大量的SDK代码无法移植,而程序员将学习两种完全不同的编程方法。

  AFX不得不重新做所有的一切,他们所创建的新的应用程序框架是一套扩展的C++类,它封装和映射了Windows API,这就是MFC的前身。过去的AFX小组也变成了MFC小组。最终,MFC的第一个公开版本于1992年3月随Microsoft C/C++ 7.0一起推出。那时距Windows 3.1发布尚有好几个月。在MFC 1.0中还没有文档/视结构,但有类CObject和CArchive。在12个月之后,MFC 2.0随Microsoft新的编程工具Visual C++ 1.0一道出炉。与MFC 1.0一样,MFC 2.0仍是16位的,因为32位的Windows NT 3.1直到1993年7月才问世。在MFC 2.0中,增加了对文档/视结构、OLE 1.0、Windows 3.1公用对话框的支持和消息映射等。在Windows NT 3.1面世一个月以后,Microsoft推出了32版本的Visual C++和MFC 2.1,它实际上是MFC 2.0的Win32接口。

  最后一个16位的Visual C++编译器是1993年12月推出的Visual C++ 1.5,直到今天,一些为Windows 3.1编写16位应用程序的程序员还在使用这个版本。1994年9月,32位的MFC 3.0伴随着Visual C++ 2.0的一道面市,在今天的计算机图书市场上,还有着大量的关于Visual C++ 2.0和MFC 3.0的图书出售,因此,可以想象得出Visual C++ 2.0所取得的成功和它所产生的影响。

  但是,在Visual C++5.0中包括的MFC版本不是MFC 5.0,而是MFC 4.21。发展到今天,MFC已发展成一个稳定和涵盖极广的C++类库,为成千上万的Win32程序员所使用。MFC库是可扩展的,它和Windows技术的最新发展到目前为止始终是同步的。并且,MFC类库使用了标准的Windows命名约定和编码格式,所以有经验的Windows SDK程序员很容易过渡到MFC。MFC结合了Windows SDK编程概念和面向对象的程序设计技术,从而具有极大灵活性和易用性。

VisualC++ 1.0:C++编译器的终结者

唯技术”思想有时能使陷入一种困境,作为一种编程工具(也可以认为是一种技术),Visual C++经历了许多风波和变革,但纵观目前几乎所以有书籍和文章,很少对这种技术进行“跳出圈外”的思考,这也使我写这篇文章感到无源的苦恼。细想之后,也颇为感慨,愿借此文以激众家之思!

  Visual C++的发展与C/C++语言、Windows的历程是分不开的。

  在C语言推出之前,操作系统等系统软件主要是用汇编语言编写的(如UNIX操作系统)。由于汇编语言依赖于计算机硬件,因此程序的可移植性和可读性就比较差。为了提高程序的可读性和可移植性,并能实现汇编语言的某些功能(如汇编语言可以直接对硬件进行操作、对内存地址进行操作和位操作等)。于是,C语言便应运而生了。

  最初的C语言只是为描述和实现UNIX操作系统而提供的一种程序设计语言。1973年,贝尔实验室的K.Thompson和D.M.Ritchie两人合作把UNIX的90%以上的代码用C语言改写(即UNIX第五版)。后来C语言又作了多次改进,1978年以后,C语言已先后移植到大、中、小及微型机上,现在C语言已成为风靡全球的计算机程序设计语言。

  到了80年代,美国AT&T贝尔实验室的Bjarne Stroustrup在C语言的基础上推出了C++程序设计语言。由于C++提出了把数据和在数据之上的操作封装在一起的类、对象和方法的机制,并通过派生、继承、重载和多态性等特征,实现了人们期待已久的软件复用和自动生成。这使得软件,特别是大型复杂软件的构造和维护变得更加有效和容易,并使软件开发能更自然地反映事物的本质,从而大大提高了软件的开发效率和质量。

  在C/C++发展过程中,C/C++的开发工具也是发展迅速。

  早期的程序员仍然不会忘记TurboPascal的集成开发环境IDE的魅力,IDE能使编辑器和编译器共同工作,在编辑器中写下源代码,使用Compile(编译)命令来启动编译器,当编译器发现错误时,它将编辑光标定位到出错语句处,以便于改正。IDE为程序开发提供一个整体环境。

  C语言产生后,Turbo Pascal发行了Turbo C,Microsoft相应地推出Quick C。虽然Quick C和Turbo C给C编程引进许多内容,但却没有对开发者产生永久性的影响(尽管Turbo C目前仍被用于现行教学中),其主要原因是二者的编辑器都不怎么好(Quick C编辑器后来合并到Microsoft Quick Basic中,现在它作为DOS编辑器Edit.com仍存在于Microsoft Windows 95中),其次,DOS下IDE占据大量内存,使程序运行空间变得很小。

  编辑器之争

  Visual C++在目前的C/C++编辑器占统治地位不是偶然的,这是由微软的正确和对手的错误造成。

  翻开C/C++编辑器历史,战火风云。当Microsoft Visual C++1.0 在C/C++开发工具市场获得了空前的成功之后,Borland的Philippe Kahn也许在和Microsoft的FoxPro For Window一役中被吓到了,因此急于在Visual C/C++ 1.0之后立刻推出新的Borland C/C++以扳回颜面。由于当时Borland失去了许多的人才,Borland C/C++ 4.0仓促推出后,由于没有在最后阶段修正许多的错误,加上加入太多的先进技术,造成了整个产品的不稳定,从而铸成大错,陷入窘境。

  在BorlandC/C++ 4.0失利之后,Borland为挽回局面,立刻着手开发Borland C/++ 4.0的Patch,当时是称为Service Pack。但是在4.01版中并没有完全的解决问题,一直要到4.02才稍为解决一些严重的问题,无奈市场已经起了巨大的变化。

  自BorlandC/C++ 4.0一役大败之后,VisualC/C++虽取得了胜利,但此时在C/C++市场上也加入了另外两个坚强的对手,那就是Symantec C/C++和Watcom C/C++。

  SymantecC/C++的Think C/C++在Macintosh上便是非常有名的编译器,因此早在C/C++领域便有深厚的基础。在Symantec并购了PC上第一个C/C++编译器Zortech C/C++之后,Symantec决定进入了PC的开发工具市场。恰逢Borland C/C++ 3.1的幕后支柱Eugene Wang刚好和Philippe Kahn闹翻,离开了Borland。Symantec重金邀请Eugene Wang,1993年左右,Symantec推出了第一个Symantec C/C++版本,立刻便获得了市场的好评。Symantec C/C++不断完善,以最完美的、先进的集成开发环境获得市场的高度认同。

  WatcomC/C++是以在DOS下能够产生最好的最优化程序代码而闻名的,再加入当时最有名的DOSExtender厂商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在专业的C/C++程序员以及系统程序员心中是第一品牌的C/C++开发工具。为了顺应DOS向Windows过度,也为了生存,大约也是在1993,1994年左右Watcom终于推出第一个基于Window平台的C/C++开发工具。虽然没有什么特色,但却以编译器的优点成为四大C/C++开发工具之一。

  但是Symantec和Watcom由于自身的实力和发展方向,在1993年初选择了和Microsoft签约,使用MFC做为它们的开发工具的C/C++ Framework。而Borland选择了坚持开发自己的C/C++ Framework,这就是OWL。

  1994年,Microsoft为了对抗Apple和IBM OS2,推出OLE(Object Linking And Embedding)技术,该技术由于可以让Window平台的文件能够内嵌在不同的应用程序中并且能在应用程序中进行编辑,因此“深入人心”。尽管该技术被后来证明是失败的技术,但却使Microsoft取得了C/C++开发工具的胜利。

  由于OLE的复杂性使得Borland无法在OWL中实现此功能,因而就造成了市场的一些负面影响。Symantec和Watcom由于签约的是MFC 1.x的版本,而OLE是在MFC 2.0中的技术,Symantec和Watcom吃了大亏。不久以后,Symantec放弃PC的C/C++开发工具市场,转而开始研发Java开发工具。而Watcom则被新兴而起的Sybase并购,从此消失。

  为了迎合市场,支持OLE技术,Borland在Borland C/C++ 4.5的OWL 2.5中推出OCF,但由于没有MFC的OLE能力强大,也逐渐败下阵来。虽然后来Borland继续推出了Borland C/C++ 5.0,5.02,但终因品质和市场原因而结束。

  随后,Windows 3.0出现了。Windows 3.0尤其是3.1,为个人计算机引进了真正的IDE时代。但是,Microsoft却把精力更多地集中在C编译器的内部支持上,而不是把它的界面升级到一个新的时代。尽管如此,MicrosoftC/C++ 7.0却引入了对C++的支持,并引进了Microsoft FoundationClass库1.0版,完善了源代码。Microsoft C/C++ 8.0成为真正的Windows IDE,这就是Visual C++ 1.0。

  Visual C++1.5之后,微软决定不再将花更多的努力去支持16位编程上。虽然,Visual C++ 2.0仍提供对16位的支持,但它仅用来创建32位程序。

  Visual C++是没有3.0的,版本号直接从2.0跳到4.0,以使Visual C++和MFC同步,但这种同步是短暂的,后来,Visual C++和MFC又使用了不同的版本号。

  Visual C++4.0引入了Internet的支持,并为Internet编程而设计的新类库。

  Visual C++5.0还增加了一些新类,但主要是集中在界面的改善上,并提供一个更好的在线帮助系统、更高级的宏能力和对在开发者组内进行类和其它代码共享的支持。5.0中还合并了Active TemplateLibrary(ATL),并显著地改善了编译器优化代码的能力。

  1998年9月,Microsoft推出了Visual C++ 6.0,它除了保留5.0对ActiveX的支持外,还支持DHTML,更新了MFC及ATL的类库,并对模板也有扩充,用户可以方便地开发出类似Web浏览器界面的应用程序。

  2000年7月,在PDC(Professional Developers Conference)会议上,Microsoft宣布启动.NET方案,推出了一个全新的开发平台Visual Studio.NET,这是Microsoft技术方向的重大转变。在这个平台上,包括了Visual C++、Visual Basic、Visual FoxPro和C#等开发工具。
2002年2月推出的Visual Studio.NET虽然有许多不近人意的地方,但是却让我们领略了它的强大之处。Visual C++.NET除对Microsoft.NET Framework支持和界面及文档的语言本地化这两个最显著特点外,它与Visual C++6.0相比,还包含其他许多新的特性,如Web应用程序、C++托管扩展、ATL、DCOM、MFC等方面的增强以及ATL Server、的支持等。

  2002年底推出Visual Studio .NET 2002,2003年4月,Visual Studio .NET 2003发布。Visual Studio .NET 2003 包含 Windows .NET Framework 的一个增强版本,并将移动和嵌入式设备,如 Pocket PC 和其他采用 Microsoft Windows CE.NET 操作系统的设备,带入了 .NET。

  Visual C++.NET 2003对2002版本进行了许多更新和优化,除界面、库作了改进之外,还对在 C++托管扩展中创建的Windows 窗体应用程序提供设计器的支持以及提供对项目中生成自动化模型的支持等。

  MFC和Visual C++

  Visual C++的核心是Microsoft基础类库,即通常所说的MFC。MFC相当彻底的封装了Win32软件开发工具包(Software Development Kit,即通常所说的SDK)中的结构、功能,它为编程者提供了一个应用程序框架,这个应用程序框架为编程者完成了很多Windows编程中的例行性工作,如管理窗口、菜单和对话框,执行基本的输入和输出、使用集合类来保存数据对象等等,并且,MFC使得在程序中使用很多过去很专业、很复杂的编程课题,如ActiveX、OLE、本地数据库和开放式数据库互联(Open DatabaseConnectivity,简写为ODBC)、Windows套接字和Internet应用程序设计等,以及其它的应用程序界面特性,如属性页(也叫标签对话框)、打印和打印预览、浮动的和可定制的工具条变得更加的容易。

  早在1989年,Microsoft的程序员们开始试图将C++和面向对象的编程概念应用于Windows编程中,以编写出一个可以使Windows编程更加简便的应用程序框架。他们把这个应用程序框架叫做AFX (AFX这个词来源于Application Framework,但奇怪的是这个词组中并没有包含“X”这个字母)。直到今天,AFX小组早已不存在了,AFX这个名称也于1994年初不再使用,但在Visual C++和MFC中,AFX的影子却随处可见,很多全局函数、结构和宏的标识符都被加上了AFX的前缀。

  最初的AFX版本在经过一年的艰苦之后诞生,却未能被大多数Windows程序员所接受。AFX的确是经过了精心的规划和编码,并且,它也提供了对Windows API的高度抽象,建立了全新的面向对象的AFX API,但最要命的是AFX API库根本不兼容于现有的Windows API。由此导致的最严重后果是大量的SDK代码无法移植,而程序员将学习两种完全不同的编程方法。

  AFX不得不重新做所有的一切,他们所创建的新的应用程序框架是一套扩展的C++类,它封装和映射了Windows API,这就是MFC的前身。过去的AFX小组也变成了MFC小组。最终,MFC的第一个公开版本于1992年3月随Microsoft C/C++ 7.0一起推出。那时距Windows 3.1发布尚有好几个月。在MFC 1.0中还没有文档/视结构,但有类CObject和CArchive。在12个月之后,MFC 2.0随Microsoft新的编程工具Visual C++ 1.0一道出炉。与MFC 1.0一样,MFC 2.0仍是16位的,因为32位的Windows NT 3.1直到1993年7月才问世。在MFC 2.0中,增加了对文档/视结构、OLE 1.0、Windows 3.1公用对话框的支持和消息映射等。在Windows NT 3.1面世一个月以后,Microsoft推出了32版本的Visual C++和MFC 2.1,它实际上是MFC 2.0的Win32接口。

  最后一个16位的Visual C++编译器是1993年12月推出的Visual C++ 1.5,直到今天,一些为Windows 3.1编写16位应用程序的程序员还在使用这个版本。1994年9月,32位的MFC 3.0伴随着Visual C++ 2.0的一道面市,在今天的计算机图书市场上,还有着大量的关于Visual C++ 2.0和MFC 3.0的图书出售,因此,可以想象得出Visual C++ 2.0所取得的成功和它所产生的影响。

  但是,在Visual C++5.0中包括的MFC版本不是MFC 5.0,而是MFC 4.21。发展到今天,MFC已发展成一个稳定和涵盖极广的C++类库,为成千上万的Win32程序员所使用。MFC库是可扩展的,它和Windows技术的最新发展到目前为止始终是同步的。并且,MFC类库使用了标准的Windows命名约定和编码格式,所以有经验的Windows SDK程序员很容易过渡到MFC。MFC结合了Windows SDK编程概念和面向对象的程序设计技术,从而具有极大灵活性和易用性。

分享到:
评论

相关推荐

    VC6.0 MFC俄罗斯方块

    基本俄罗斯方块游戏规则,mfc对话框完成,文件存储高分历史记录(10个)

    基于VC MFC的数据分析系统

    数据传输处理之后,以文本和模拟坐标两种方式显示出光斑的位置,并利用文件保存光斑位置的历史信息。系统调试结果证明:该界面能够准确直观地显示数据分析系统的相关数据,实现与用户的友好交互,且具有较强的适用性...

    vc计算器源代码,支持各种进制正余弦的计算器,vc多功能计算器,vc计算器,mfc计算器,

    4、具备历史计算的记忆功能 5、对不正确的表达式能指出其错误原因 有好的东西就应该大家分享,本人将自己做的一个课程设计给大家分享下,好快要交了... **测试我的时发现好多后边多0.0000001,或者少了0.0000001,后来...

    MFC 科学型计算器

    较为详细的设计了一个科学型计算器,模仿微软操作系统的计算器,实现了存数功能,进制运算等

    VC常用控件示例代码

    CmbShowHis: 组合框输入历史记录 CtrlFont: 字体显示 DoModalRet: 返回模式对话框 FileDialog: 文件对话框 FntClrDialog: 字体和颜色公共对话框 ListBox: 下拉框控件 ListCtrl: 下拉框控件 LmtEdit: 文本框...

    在MFC中访问Internet Explorer的历史记录

    从MFC中的Internet Explorer获取历史记录。

    MFC实现的多选的列表框ListBox

    本文以包含两个列表框的对话框为例,实现了对话框常用的功能。左边的“待选的历史人物”列表框包含历史人物的名字,当选中人名并单击“添加”按钮,则名字会被添加...且列表框中的选项可以实现多选和多个选项同时操作。

    mfc多功能计算器源代码,vc多功能科学计算器,计算器源代码

    功能有如下: 二进制、八进制、十进制及十六...具备历史计算的记忆功能 对不正确的表达式能指出其错误原因 有好的东西就应该大家分享,本人将自己做的一个课程设计给大家分享下,好快要交了... 参考资料:www.ymy5.com

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 v1.0.5

    如果这种方法还是无法打开,你新建一个vc6.0 mfc sdi程序,把示例中框架拷贝到这个新工程中,运行即可,代码量不是太多。 框架说明: /****************************************************** ...

    基于MFC对话框的科学计算器(加强版)

    界面精美的MFC对话框 科学计算器 实现了加减乘除乘方括号混合运算 显示历史计算 还有许多功能等待开发 谢谢下载 仅供学习交流

    24点扑克牌游戏 MFC

    本程序基于MFC编程编写,可实现24点游戏,随机产生一组有解的数字供用户思考,并可根据需要分步显示提示信息、实现显示题目的难度(根据穷举所得的解答个数一共分为五档难度)、查询历史记录(信息包括历史题目、...

    MFC解决窗口保存及重绘闪烁问题的一种比较好的方案 v1.0.4

    3.VCRn 修改vc工程名工具 ___作者 田彬.exe 用网上找到的一个MFC改工程名称的小工具,很实用。如果你想使用本框架就可以用它来改成你想要的工程名了。 4. 未使用本框架的类似功能简化程序 没有使用框架的程序,...

    利用MFC做的键盘控制小游戏Braver 2.0

    大学期间做的一个键盘控制小游戏,利用了MFC的文档视图结构,固定窗口大小,实现了游戏的基本的控制功能、设置功能、存档读档功能、地图显示功能、历史记录保存功能等。程序利用镂空图消除了人物显示的空白背景区域...

    VC 数据库编程(Word)

    MFC ODBC编程 112 6.1 了解MFC ODBC 112 6.1.1 CDatabase类 112 6.1.2 CRecordSet类 112 6.2 MFC ODBC数据库访问技术 113 6.2.1 记录查询 113 6.2.2 记录添加 114 6.2.3 记录删除 115 6.2.4...

    VC 在窗口中绘制显示电路板原器件布局图.rar

    VC 在窗口中绘制显示电路板原器件布局图,是模拟的一个监控系统,不过貌似和监控没多大关系,程序中可显示各种曲线,显示电路布局图,功能菜单:画图管理、历史曲线、实时曲线、打印电路图、值班操作、特权操作、...

    VC6.0数据库编程

    COM与数据库访问 13 2.1 COM的基本原理 13 2.1.1 COM历史 13 2.1.2 COM结构 14 2.1.3 COM优势 15 2.1.4 COM接口 16 2.1.5 COM与数据库访问 17 2.1.6 COM与Internet 17 2.2 ActiveX的数据库...

    vc++ 应用源码包_6

    详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...

    VC++在子菜单中记录历史文件

    摘要:VC/C++源码,界面编程,记忆菜单,历史记录,mfc70.dll VC++在子菜单中添加打开文件的历史记录文件,菜单为自动记忆你打开过的文件,方便下次快速打开,示例程序仅以打开TXT格式的文本文件为例,演示如何记录打开...

    类似IE的VC编写浏览器

    利用已有的HTTP控制、HTML解释器和HTML执行器,通过MFC提供的CHtmlView类实现的一个Windows下的多功能的浏览器,其功能包括:WEB站点浏览、本地和网络的文件系统的浏览、历史记录的维护、IE收藏夹功能和设置桌面快捷...

    VC 数据库编程三部教学

    2.1.1 COM历史 13 2.1.2 COM结构 14 2.1.3 COM优势 15 2.1.4 COM接口 16 2.1.5 COM与数据库访问 17 2.1.6 COM与Internet 17 2.2 ActiveX的数据库访问 18 2.2.1 ActiveX简介 18 2.2.2 ActiveX对数据库访问的支持 18 ...

Global site tag (gtag.js) - Google Analytics