作者:苟建兵 清华大学热能系(北京,100084)
目前在Windows下开发应用程序的工具虽然很多,但是C/C++作为一种非常成熟和高效的开发语言在大型复杂项目的开发中仍然得到了广泛应用。为了减轻程序开发负担,提高开发效率,各种流行的C++都提供了类库,本文就是针对如何在Visual C++环境中使用MFC类库来开发高级程序所需要解决的一些
问题进行了的探讨,重点讨论了利用MFC开发单文档多视应用程序和DDE应用
程序的方法。
文章正文
一、使用C/C++
随着Windows系列操作系统的日益普遍,传统的基于DOS编程逐渐转向Windows下编程已经成为必然趋势。目前在Windows下开发应用
程序的工具很多,典型的如Borland
C++、Visual C++、Visual Baisic以及Delphi等等。每种开发工具都各有其特点, 一般来讲用户可以根据自己的使用习惯和开发项目的性质来选择具体的开发语言。
Visual Basic是一个被软件界称之为划时代的革新产品,该软件改变了人们开发 Windows程序的方式,它采用交互式的可视化操作,使得人们开发Windows程序的每 一过程都有直观形象的反馈,从而加速整个开发进程。Visual Basic使得Windows程 序设计人员不再只依赖于复杂的SDK编程,使得开发Windows
程序非常容易,可以 说,用户
学习并使用VB来开发Windows应用的时间是最短的。Visual Basic版本几经
演变,目前已经发展到5.0。在4.0版本中,由于完全使用了面向对象的编程概念, 同时具有Windows 3.1和Windows 95下的版本,因而使得其开发复杂程序的功能逐渐 增强。VB5.0则抛弃了Windows 3.x的用户,只能在32位Windows中使用,据悉,该版 本吸收了Delphi的成功策略,引入了本地代码(Native Code)编译器,从而使得
程序 执行速度大大加快,克服了以往版本由于执行文件采用P-Code代码而导致运行速度
慢的特点,根据微软的声明,该版本的采用本地代码编译后得到的应用程序在某些 情况下执行速度较以往提高了10~20倍,执行速度可以直逼与采用Visual C++编写的 应用,而应用开发速度则是VB的强项,因此Visual Basic 5.0非常具有竞争性。目 前Visual Basic非常广泛地用于开发各种Windows程序,如数据库前端应用
程序和多 媒体应用等。但是,在作者看来,采用VB也有一定的缺点,原因有以下几点:
1. Visual Basic来源于Basic语言,虽然经过微软的不断增强,但是仍然缺乏非常 灵活的数据类型和编程策略,因而在开发一些项目必须的复杂数据结构遇到麻烦, 如链表、图和二叉树等等。由于在中大型项目开发后期,开发工作不再以界面为 主,而是在算法设计和底层软硬件工作,这就使VB开发项目的后期工作量大幅度增 加,为了达到项目要求,经常需要再转向C/C++开发一些专用的动态连接库来解决问
题。
2. Visual Basic运行速度慢,前文讲过,采用P-Code代码虽然执行文件很小,但是 在运行时需要解释执行,并且,它的运行必须有对应的VBRUN.DLL和所使用的VBX或 者OCX支持。对于浮点操作密集或者循环嵌套很多的应用来说,VB没有采取特别的优 化,因而执行速度远不如用C/C++和Fortran开发的应用速度快。VB 5.0虽然通过引 入本地代码编译器大大弥补了这个缺陷,但是由于其只能运行于32位Windows环境因 而在16位Windows上速度问题仍然得不到解决。虽然目前转向32位Windows的趋势非 常强劲,但是不容忽视由于硬件的限制或者使用习惯等诸多原因,还有许多用户仍 然在16位Windows上工作。在
计算机十分普及的美国,96年使用16位Windows的用户 仍然超过了使用32位Windows的用户,任何进行系统软件设计的人员都应该照顾到这 些仍然使用16位Windows的用户。
3. VB不能灵活地使用系统资源。熟悉Windows编程的人都知道,如果要直接访