在一些技术书籍中,许多的笔墨都是着重于描述“如 何”使用Windows以及“如何”在Windows上开发软件,但是很少有作者会去探究“为什么”。有些事情初看上去是不可思议的,但却经常有着完全合 理的和符合逻辑的解释,这些都反映出了在微软的Windows操作系统中所蕴涵的历史背景,发展趋势以及基本原理。在本书所给出的知识中,主要的目的并不 是为了告诉你如何去做(虽然这方面的内容有很多),而更多的是帮助你理解为什么事情发展成为现在这样。因此,在你知道了Windows的历史背景和基本原 理之后,你就能够成为一名更为高效的Windows程序员。
本书中所讲述的重点是隐藏在Windows背后的基 本理论。本书既不是一本参考手册,也不是一本指南,而是一本“真实的历史”。本书通过一系列简短的并且基本上是相互独立的短文,来为你给出对 Windows基本原理的正确认识,它采用的是一种谈话的方式而并非说教的方式。因此,你可以自由地跳到自己感兴趣的(或者某个专门技术的)主题。本书根 据所讨论问题的共性对这些短文进行了分组,并且当我们对某个主题研究得很深入时,将会把这个主题分成几个小节连续的来讨论,这也是一种有效的教学方式;不 过,即使是在这种情况下,这个主题仍然是不会超过整个章节的讨论范围。
作家兼评论员David Sedaris经常被问到,他所讲的故事是否是真实的。他的回答是,这些故事是“足够真实的”。就像David Sedaris的故事一样,在本书中的内容同样也是“足够真实的”。我们要将注意力是放在大的方向上,而不要拘泥于小节;要重点突出单个要点,而不是吹毛 求疵。在本书中,我们将重点强调关键的细节,而那些不重要的东西将被搁置起来。而且,即使有一些内容可能会令人感兴趣,但如果与正在讨论的主题没多大关 系,那么也将会忽略掉。
本书所面向的读者应该是对技术有所了解,并且对 Windows的历史有着一定的兴趣。在本书中,大约有一半的主题并不需要编程的背景知识;在剩下的一半主题中,大多数也只需要读者有基本的软件设计和软 件开发的知识就够了,而并没有什么特别深奥的东西。那些与Windows编程相关的专门主题则需要读者熟悉Win32用户界面编程和COM。在后面,我们 根据非程序员和对Win32没有特殊兴趣的程序员的需求,对这些章节进行了分类。当然,你也可以跳过那些不感兴趣的章节,但或许你也能够在这些章节中找到 一些感兴趣的东西。
你从本书中将得到什么?正如我们在前面所提到的,本 书的主要目的是讲述隐藏在Windows设计后面的一些基本原理,虽然有些设计初看上去是不合理的。此外,你还将了解什么时候某项技术在Windows中 是不能使用的,而这种限制往往是出于好意;并且,你将理解Windows为了维持向后兼容性所付出的努力(以及为什么这样做是很重要的)。最后,你还能够 在鸡尾酒会(也就是说,有着其他的Windows狂热爱好者参加的鸡尾酒会)上讲述这些有趣的Windows历史故事。
本书中的大多数文章中都已经在作者的网站The Old New Thing(http://blogs.msdn.com/oldnewthing/)上以这样或那样的形式出现过,但是为了更好地满足本书的需求,我补充了许多新的内容。
读者可以到本书的网页 (www.awprofessional.com/title/0321440307)上下载附送的两章,“应用程序兼容性的故事(Tales of Application Compatibility)”和“如何确保你的程序不会在Windows 95下运行(How to Ensure That Your Program Does Not Run Under Windows 95)”。如果你喜欢的话,可以阅读这两章并进行思考,这两章的内容是在本书的后期编辑中去掉的,就好像是在电影的后期制作中去掉的两幕场景,它们是独一 无二的并且引人深思。此外,在网页中还包含了本书中的示例代码和勘误表。
根据读者的需求对章节进行分类
|
章节 |
标题 |
普通的读者 |
普通的程序员 |
Win32程序员 |
|
第1章 |
用户界面设计初探 |
× |
× |
× |
|
第2章 |
Windows 95的精选回忆录 |
× |
× |
× |
|
第3章 |
GetWindowText的神秘生命期 |
|
|
× |
|
第4章 |
任务栏和通知区 |
× |
× |
× |
|
第5章 |
莫名其妙的界面问题 |
× |
× |
× |
|
第6章 |
GlobalLock函数的历史 |
|
|
× |
|
第7章 |
关于Windows编程的一些简短主题 |
|
|
× |
|
第8章 |
窗口管理 |
|
|
× |
|
第9章 |
关于硬件的回忆录 |
× |
× |
× |
|
第10章 |
对话框管理器的内部工作机制 |
|
|
× |
|
第11章 |
软件开发中的一般性问题 |
|
× |
× |
|
第12章 |
深入研究Visual C++编译器 |
|
× |
× |
|
第13章 |
向后兼容性 |
× |
× |
× |
|
第14章 |
语源与历史 |
× |
× |
× |
|
第15章 |
窗口消息的发送与接收 |
|
|
× |
|
第16章 |
国际化编程 |
前半部分内容 |
× |
× |
|
第17章 |
安全 |
|
× |
× |
|
第18章 |
Windows 2000和Windows XP的回忆录 |
前半部分内容 |
前半部分内容 |
× |
|
第19章 |
Win32中的设计问题 |
|
部分内容 |
× |
|
第20章 |
Windows中的“税收” |
|
× |
× |
|
第21章 |
一些可笑的事情 |
× |
× |
× |
|
﹡ |
应用程序兼容性的故事 |
× |
× |
× |
|
﹡ |
如何确保你的程序不会在Windows 95下运行 |
|
× |
× |
﹡附送章节可以从www.awprofessinoal.com/title0321440307下载







