序言
本书描述使用microsoft windows应用程序编程接口(application programming ingterface,api)进行应用程序开发的方法,专注于文件系统、进程和线程管理、进程间通信、网络编程以及同步等核心系统服务。本书的示例都来自现实场景,其中有许多是基于作者在实践中所开发的真实应用程序。
microsoft的32位和64位操作系统家族(目前广泛使用的版本包括windows 7、vista、xp、server 2003、server 2008以及ce)支持win32/win64 api(也就是windows api)。更早一些的windows家族成员有windows 2000、nt、me、98和95,虽然这些系统已经过时,但本书中的许多主题仍旧适合于这些老系统。
windows api是应用程序开发的重要因素,经常代替posix api(unix和linux支持它)作为桌面、服务器和嵌入式系统应用程序开发的api,不仅现在如此,将来也是如此。许多程序员,无论经验如何,都想快速学习windows api,而本书正是为他们所写的。
目标和方法
本书的目标是:在不给读者过多不必要的细节的情况下尽可能快地讲解windows是什么以及如何在实际中使用它。本书不是一本参考指南,而是讲解那些最重要的函数的核心特性,并且展示如何在实际编程中将它们一起使用。有了这些知识,读者就可以通过广泛的microsoft参考文档来探究更多细节和更高级的选项,根据需求或兴趣探究更为隐秘的功能。这种方法会让windows api的学习更为容易,而且让开发windows程序成为一种享受,即使偶尔也会有挫折。这种热情将时不时地显露出来。当然,windows并不一定比其他操作系统api更好,但它的确有许多引人入胜的特性,而且随着每个新版本的推出都得到极大的改进。
许多windows书籍用大量篇幅讲述进程、虚拟内存、进程间通信和抢占式调度,却没有展示在实际情况下如何使用它们。有unix、linux、ibm mvs或其他操作系统经验的程序员对这些概念并不陌生,他们会急于了解如何在windows中实现它们。大多数windows书籍也会在用户界面编程这一重要主题上占用大量篇幅。本书有意避开用户界面的问题,而仅讨论简单的基于字符的控制台i/o,以便专注于重要的核心功能。
文摘
插图:
示例的设计旨在:
·演示windows函数常见的、有代表性的以及有用的应用。
·与在程序开发、咨询和培训中所遇到的真实编程情况相联系。一些客户以及参加我的课程的人基于这些示例开发他们自己的系统。在提供咨询时,我经常碰到与示例中所用的代码相似的代码,有几次还碰到从前一版本的书中直接取来或经过修改的代码(读者可随意这样做,如果能在文档中致谢我将不胜感激)。此代码经常作为com、.net或c++对象的一部分。由于时间和空间的限制,这些示例是“真实世界”的示例并且解决“真实世界”的问题。
·强调函数的实际行为以及与实际应用程序的交互,这与读者在阅读了文档之后所想到的并不总是一致。本书中的正文和示例都专注于函数间的交互,而不是函数本身。
·增长与扩张,既以自然的方式对前面的解决方案添加新功能,又探究可选的其他实现技术。
·实现unix/unux命令,比如lstouch、chmod和sort,这样既以熟悉的上下文展示windows函数,又创建一组有用的工具。对相同命令的不同实现也让我们可以很容易地对高级windows特性所具有的性能优势进行比较。附录c包含性能测试结果。
前面章节中的示例通常较短,后面章节中的示例会适当长一些。
每章末尾的习题提供可研究的另一种设计、主题,以及额外的、超出本书范围但却是重要的功能。有些习题很容易,而有一些则颇具挑战性。我们经常给出清楚标注的有瑕疵的解决方案,因为解决错误是提高技能的好方法。
所有的示例都在windows 7、vista、server 2008、xp以及更早的系统下调试、测试过。测试包括32位和64位两个版本。所有程序也都在单处理器和多处理器系统下测试过,最多用到16个处理器。客,p/服务器应用程序的测试使用了多个客户同时与服务器交互。但是,我们并不对程序的正确性、完整性或者针对任何目的的适用性提供保证。毫无疑问,即使是最简单的示例也包含瑕疵或者在某些情况下会出错,这是几乎所有软件的共性。但是,如果能将任何与程序瑕疵有关的信息提供给我,我将甚为感激;如果能有这些瑕疵的修改建议则更为理想,我会将这些信息张贴在本书的web站点上,以便让所有人受益。
相关阅读:
更多图书资讯可访问读书人图书频道:http://www.reader8.net/book/
