本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application Programming Interface(API)。如在本章稍后所讨论的,这不是写作Windows程序的唯一方法。然而,无论最终您使用什么方式写作程序,了解Windows API都是非常重要的。正如您可能知道的,Windows 98已成为使用Intel 32位微处理器(例如486和Pentium)的IBM兼容型个人计算机环境上最新的图形操作系统之代表。Windows NT是IBM PC兼容机种以及一些RISC(精简指令集计算机)工作站上使用的Windows工业增强型版本。使用本书有三个先决条件。首先,您应该从使用者的角度熟悉Windows 98。不要期望可以在不了解Windows使用者接口的情形下开发其应用程序。因此,我建议您在开发程序(或在进行其它工作)时使用执行Windows的机器来跑Windows应用程序。第二,您应了解C语言。如果要写Windows程序,一开始却不想了解C语言,那不是一个好主意。我建议您在文字控制台环境中,例如在Windows 98 MS-DOS命令提示窗口下提供的环境中学习C语言。Windows程序设计有时包括一些非文字模式程序设计的C语言部分;在这些情况下,我将针对这些问题提供讨论。但大多数情况下,您应非常熟悉该语言,特别是C语言的结构和指针。了解标准C语言执行期链接库的一些相关知识是有帮助的,但不是必要的。第三,您应该在机器上安装一个适于进行Windows程序设计的32位C语言编译器和开发环境。在本书中,假定您正在使用Microsoft Visual C++ 6.0,该软件包可独立购买,也可作为Visual Studio 6.0软件包的一部分购买。到此为止,我将不再假设您具有任何图形使用者接口(如Windows)的程序写作经验。WINDOWS环境Windows几乎不需要介绍。然而人们很容易忘记Windows给办公室和家庭桌上型计算机所带来的重大改变。Windows在其早期曾经走过一段坎坷的道路,征服桌上型计算机市场的前途一度相当渺茫。Windows简史在1981年秋天IBM PC推出之后不久,MS-DOS就已经很明显成为PC上的主流操作系统。MS-DOS代表Microsoft Disk Operating System(磁盘操作系统)。MS-DOS是一个小型的操作系统。MS-DOS提供给用户一种命令列接口,提供如DIR和TYPE的命令,也可以将应用程序加载内存执行。对于应用程序写作者,它提供了一组函数呼叫,进行文件的输入输出(I/O )。对于其它的外围处理-尤其是将文字或图形写到显示器上-应用程序可以直接存取PC的硬件。由于内存和硬件的限制,成熟的图形环境缓慢地才到来。当苹果计算机公司不幸的Lisa计算机在1983年1月发表时,它提供了不同于文字模式环境的另一种选择,并在1984年1月成为Macintosh上图形环境的一种标准。尽管Macintosh的市场占有率在下降,但是它仍然被认为是衡量所有其它图形环境的标准。包括Macintosh和Windows的所有图形环境,其实都要归功于Xerox Palo Alto Research Center(PARC)在70年代中期所作的开拓性研究工作。Windows是由微软在1983年11月(在Lisa之后,Macintosh之前)宣布,并在两年后(1985年11月)发行。在此后的两年中,紧随着Microsoft Windows早期版本1.0之后,又推出了几种改进版本,以支持国际商业市场,并提供新型视讯显示器和打印机的驱动程序。Windows版本2.0是在1987年11月正式在市场上推出的。该版本对使用者接口做了一些改进。这些改进中最有效的是使用了可重迭式窗口,而Windows 1.0中使用的是并排式窗口。Windows 2.0还增强了键盘和鼠标接口,特别是加入了菜单和对话框。至此,Windows还只要求Intel 8086或者8088等级的微处理器,以「实际模式」执行,只能存取地址在1MB以下的内存。Windows/386(在Windows 2.0之后不久发行的)使用Intel 386微处理器的「虚拟8086」模式,实现将直接存取硬件的多个MS-DOS程序窗口化和多任务化。为了统一起见,Windows版本2.1被更名为Windows/286。