《深入浅出MFC第2版(PDF格式)》第13章


28 
…………………………………………………………Page 51……………………………………………………………
第0章 你定要知道(導讀) 
你需要什么技术基础 
从什么技术层面切入Windows 软件开发领域?C/SDK ?抑或C++/MFC ?这一直是个 
引起争议的论题。就我个人观点,C++/MFC 程序设计必须跨越四大技术障碍: 
1。 对象导向观念与C++ 语言。 
2。 Windows 程序基本观念(程序进入点、消息流动、窗口函数、callback。。。 )。 
3。 Microsoft Foundation Classes (MFC )本身。 
4。 Visual C++ 整合环境与各种开发工具(难度不高,但需熟练)。 
换言之,如果你从未接触C++ ,千万不要阅读本书,那只会打击你学习新技术的信心而 
已。如果已接触过C++ 但不十分熟悉,你可以一边复习C++ 一边学习MFC ,这也是 
我所鼓励的方式(很多人是为了使用MFC 而去学习C++ 的)。C++ 语言的继承 
(inheritance )特性对于我们使用MFC 尤为重要,因为使用MFC 就是要继承各个类别 
并为己用。所以,你应该对C++ 的继承特质(以及虚拟函数,当然)多加体会。我在 
第2章安排了一些C++ 的必要基础。我所挑选的题目都是本书会用到的技术,而其深 
度你不见得能够在一般C++ 书籍中发现。 
如果你有C++ 语言基础,但从未接触过Win16 或Win32 程序设计,只在DOS 环境下 
开发过软件,我在第1章为你安排了一些Win32 程序设计基础。这个基础至为重要,只 
会在各个Wizards 上按来按去,却不懂所谓message loop 与window procedure 的人, 
不可能搞定Windows 程序设计…不管你用的是MFC 或OWL 或Open Class 
Library ,不管你用的是Visual C++ 或Borland C++ 或VisualAge C++ 。 
你需要什么软硬件环境 
一套Windows 95 (或Windows NT )操作系统当然是必须的,中英文皆可。此外,你需 
要一套Visual C++ 32 位版。目前的最新版本是Visual C++ 5。0 ,也是我使用的版本。 
29 
…………………………………………………………Page 52……………………………………………………………
深入湷觥 FC 
硬件方面,只要能跑上述两种操作系统就算过关。内存(RAM )是影响运作速度的主 
因,多多益善。厂商宣称16MB RAM 是一个能够使你工作舒适的数字,但我因此怀疑 
「舒适」这个字眼的定义。写作本书时我的软硬件环境是: 
■ Pentium 133 
■ 96M RAM 
■ 2GB 硬盘 
■ 17 寸显示器。别以为显示器和程序设计没有关系。大尺寸屏幕使我们一次看多 
一点东西,不必在Visual C++ 整合环境所提供的密密麻麻的画面上卷来卷去。 
■ Windows 95 (中文版) 
■ Visual C++ 5。0 
让我们使用同一种语言 
要在计算机书籍不可或缺的英文术语与流利顺畅的中文解说之间保持一个平衡,是多么不 
容易的一件事。我曾经以为我通过了最大的考验,但每次总有新鲜事儿发生。是该叫class 
好呢?还是叫「类别」好?该叫object 好呢?还是叫「对象」好?framework 难道该译 
为框架吗?Document 译为「文件」,可也,可View 是什么碗糕?我很伤脑筋耶。考 
虑了这本书的潜在读者所具备的技术基础与教育背景之后,原谅我,不喜欢在中文书中 
看到太多英文字的朋友,你终究还是在这本书上看到了不少原文名词。只有几已统一化、 
没有异议、可以望文生义的中文名词,我才使用。 
虽然许多名词已经耳熟能详,我想我还是有必要把它们界定一下: 
API Application Programming Interface 。系统开放出来,给程序员使用的接口,就是 
API 。一般人的观念中API 是指像C 函数那样的东西,不尽然!DOS 的中断向量 
(interrupt vector )也可以说是一种API ,OLE Interface (以C++ 类别的形式呈现)也可 
以说是一种API 。不是有人这么说吗:MFC 势将成为Windows 环境上标准的C++ API 
(我个人认为这句话已成为事实)。 
30 
…………………………………………………………Page 53……………………………………………………………
第0章 你定要知道(導讀) 
SDK Software Development Kit ,原指软件开发工具。每一套环境都可能有自己的 
SDK,例如Phar Lap 的386|DOS Extender 也有自己的SDK。在Windows 这一领域, 
SDK 原是指Microsoft 的软件开发工具,但现在已经变成一个一般性名词。凡以 
Windows raw API 撰写的程序我们通常也称为SDK 程序。也有人把Windows API 称为 
SDK API 。Borland 公司的C++ 编译器也支持相同的SDK API (那当然,因为Windows 
只有一套)。本书如果出现「SDK 程序」这样的名词,指的就是以Windows raw API 完 
成的程序。 
MFC Microsoft Foundation Classes 的缩写,这是一个架构在Windows API 之上的 
C++ 类别库(C++ Class Library ),意图使Windows 程序设计过程更有效率,更符合物 
件导向的精神。MFC 在争取成为「Windows 类别库标准」的路上声势浩大。Symantec C++ 
以及WAT C/C++ 已向微软取得授权,在它的软件开发平台上供应MFC 。Borland 
C++ 也可以吃进MFC 程序代码…啊,OWL 的地位益形尴尬了。 
OWL Object Windows Library 的缩写,这也是一个具备Application Framework 架势 
的C++ 类别库,附含在Borland C++ 之中。 
Application Framework 在对象导向领域中,这是一个专有名词。关于它的意义,本书 
第5章有不少介绍。基本上它可以说是一个更有凝聚力,关联性更强的类别库。并不是 
每一套C++ 类别库都有资格称为Application Framework ,不过MFC 和OWL 都可入 
列,IBM 的Open Class Library 也是。Application Framework 当然不一定得是C++ 类别 
库,Java 和Delphi 应该也都称得上。 
为使全书文字流畅精简,我用了一些缩写字: 
API Application Programming Interface 
DLL Dynamic Link Library 
GUI Graphics User Interface 
MDI Multiple Document Interface 
31 
…………………………………………………………Page 54……………………………………………………………
深入湷觥 FC 
MFC Microsoft Foundation Class 
OLE Object Linking & Embedded 
OWL Object Windows Library 
SDK Software Development Kit 
SDI Single Document Interface 
UI User Interface 
小说推荐
返回首页返回目录