Windows编程启示录
基本信息
编辑推荐
Raymond Chen在Micorsoft的Windows开发团队中工作了十余年,他将为您揭开那些有必要知道的“Windows内幕”。
Chen风趣的写作风格、深入的洞察力以及引人深思的幽默,使他成为了世界上最优秀的技术博客作者之一。在本书中,他不仅给我们带来了许多幕后的故事,宝贵的技术建议,还带来了许多启发性的轶事;这些都将帮助您最大程度地理解Windows。
推荐阅读
内容简介回到顶部↑
本书通过一系列短文来讲解windows基本原理,例如:窗口和对话框的管理机制,如何设计像自动售货机那样有效的用户界面,对性能优化的理解,向后兼容的关键技术细节,windows程序的安全漏洞,如何使程序更好地在windows系统中运行等。本书不仅讲解windows幕后的许多故事、宝贵的技术建议,还包括了许多启发性的轶事,这些都将帮助读者最大程度地理解windows。
本书适合于软件开发人员,或对windows的发展历史有兴趣的读者。
本书适合于软件开发人员,或对windows的发展历史有兴趣的读者。
作译者回到顶部↑
本书提供作译者介绍
Raymond Chen是微软公司Windows部门的一位软件工程师,他的博客“The Old New Thing”主要讨论Windows的发展历史以及Win32编程。他还为TechNet杂志撰写Windows Confidential专栏。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
第1章 用户界面设计初探
第2章 windows 95 的精选回忆录
第3章 getwindowtext的秘密
第4章 任务栏与通知区域
第5章 令人困惑的界面问题
第6章 globalalloc函数的历史
第7章 windows编程中的一些话题
第8章 窗口管理
第9章 关于硬件的回忆录
第10章 对话框管理器的内部工作机制
第11章 常见的软件问题
第12章 深入研究visual c++编译器
第13章 向后兼容性
第14章 一些名字的来源和历史
第15章 窗口消息的发送与接收
第16章 国际化编程
第17章 安全
第18章 windows 2000和windows xp
第19章 win32中的设计问题
第20章 “税收”
第2章 windows 95 的精选回忆录
第3章 getwindowtext的秘密
第4章 任务栏与通知区域
第5章 令人困惑的界面问题
第6章 globalalloc函数的历史
第7章 windows编程中的一些话题
第8章 窗口管理
第9章 关于硬件的回忆录
第10章 对话框管理器的内部工作机制
第11章 常见的软件问题
第12章 深入研究visual c++编译器
第13章 向后兼容性
第14章 一些名字的来源和历史
第15章 窗口消息的发送与接收
第16章 国际化编程
第17章 安全
第18章 windows 2000和windows xp
第19章 win32中的设计问题
第20章 “税收”
前言回到顶部↑
在一些技术书籍中,许多的笔墨都是着重于描述“如何”使用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)”。如果你喜欢的话,可以阅读这两章并进行思考,这两章的内容是在本书的后期编辑中去掉的,就好像是在电影的后期制作中去掉的两幕场景,它们是独一无二的并且引人深思。此外,在网页中还包含了本书中的示例代码和勘误表。...
本书中所讲述的重点是隐藏在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)”。如果你喜欢的话,可以阅读这两章并进行思考,这两章的内容是在本书的后期编辑中去掉的,就好像是在电影的后期制作中去掉的两幕场景,它们是独一无二的并且引人深思。此外,在网页中还包含了本书中的示例代码和勘误表。...
媒体评论回到顶部↑
1. Windows的真正权威指南,2007年3月6日,Steven Sinofsky “Microsoft FTE”(西雅图,美国)★★★★★
对于如何在Windows中编写程序,在Raymond Chen的书中给出了一种有技术深度的,发人深思的和令人愉快的见解。他将这个世界上应用得最为广泛的API的历史带入到了我们的生活中,并且给出了这些API为什么这么做以及如何做的第一手资料。对于目前正在使用Vista的程序员或者有经验的程序员来说,如果正是想要记住一些在早期Windows开发中的趣事,那么这本书是最合适不过了。读者们在阅读本书之后,应该将书中的一些知识利用起来,这将使你的Windows程序更加完善!
2. 充满了许多关于Windows实用技术的好文章,2007年1月24日,James Holme,“Windows Developer Power Tools”的作者之一(俄亥俄,美国)★★★★☆
本书充满了许多极具娱乐性的文章,这些文章几乎涵盖了各个方面的内容,从为什么你不能通过XCOPY来安装Windows,到Win32对话框模板的演变历史等。好吧,这也可能是因为我以前不知道对话框模板的内容是如此地有趣,但除此之外,本书的其他部分充满着非常有趣的主题,这些主题很好地说明了Windows为什么会成为现在这个样子。
Chen在Microsoft的Win32世界中已经呆了很长的时间,并且他非常了解自己的知识领域。对于他所从事的领域,他是非常地擅长,而对于不知道的,他也是非常地坦率。他在DotNetRocks上的表现与本书是非常一致的:对于他的领域中一些非常深的研究,他都是很明确地说“那些内容超出了我所掌握的知识”。
那么,对于不在Win32上进行开发的程序员来说,这本书有着什么用?首先,本书对Windows中的一些基本行为给出了非常好的背景知识,例如为什么“关闭计算机”选项是放在“开始”菜单中,叠加图标的作用是什么,为什么注册表文件被叫做“蜂房”,以及关于国际化编程的一些奇闻逸事等。此外,书中还有许多的知识同样适用于在各个领域的人们:要小心所有人都可写的文件,服务器分页的影响,以及关于编写排序函数的一般性问题。
其次,这本书也可以被看作为一本普通的娱乐书籍。在编写本书的时候,Chen使用的是一种轻松的,幽默的写作方式,并且想方设法让其中的大多数文章都非常有趣。(要想让有着几页长的示例代码变得非常有趣几乎是不可能的,但是Chen基本上做到了这一点。)
总的来说,对于像我这样的人,这本书是一本很好的浏览读物。我已经说过,如果你正在进行Win32开发,这本书是很重要的——这也包括那些正在进行大量Interop编程的.NET开发员。
3. 一本关于Windows的正史和野史的很有意思的书,2007年1月13日,Thomas Duff “Duffbert”(波特兰,美国)★★★★☆
作为一个开发员,最常碰到的情况是…为了修改某个错误,你需要分析一个程序,在分析的过程中你遇到了一些奇怪的代码。“这是哪个白痴写的代码?”。而事实上,在编写这段代码的当时,很可能存在着的一些你所不知道的约束和限制。在The Old New Thing: Practical Development Throughout the Evolution of Windows这本书中,Raymond Chen讲述了这些问题,以及许多其他的故事。虽然这并不是一本能够让我自始至终聚精会神阅读的书,但它确实是一本很有意思的书。
内容:用户界面设计初探;Windows 95的精选回忆录;GetWindowText的神秘生命期;任务栏和通知区;莫名其妙的界面问题;GlobalLock函数的历史;关于Windows编程的一些简短主题;窗口管理;关于硬件的回忆录;对话框管理器的内部工作机制;软件开发中的一般性问题;深入研究Visual C++编译器;向后兼容性;语源与历史;窗口消息的发送与接收;国际化编程;安全;Windows 2000和Windows XP的回忆录;Win32中的设计问题;Windows中的“税收”;一些可笑的事情;索引。
Chen是开发Windows操作系统的程序员之一,他通过这本书来讲述Windows的开发 “历史”。书中的章节又被进一步划分为子章节,这些子章节的标题通常是以“为什么…”作为开头。在这些子章节中解释了,在当时的环境下,为什么会做出一些特殊的设计决策。本书所采取的是谈话式的写作风格并且略带一些嘲讽的味道,因此在很大程度上,你可以坐下来像阅读一本娱乐性的散文作品一样来阅读本书。例如,你将发现使用一部大词典来检查拼写错误(在牛津英语词典中,“werre”是一个正确的词)是没有必要的。此外,你还将了解到,为什么当软件需要在国际上进行销售时,不去维护地图一种明智的举动;以及为什么CR+LF是既成事实的行结束符?正是这些花絮和故事,让我觉得本书对我来说值得一读。
另一方面,本书讲到了许多的Windows API编程,包括示例代码,相互对照以及指导建议等。现在,如果你是忠诚的Windows开发员,那么你将发现有一些章节讨论了关于CreateMenu和CreatePopupMenu之间的区别以及什么是_purecall,这些内容更适合你的喜好。在这部分的内容中,狂热的开发员们将了解到为什么某个API看上去是如此地臃肿不堪,并且带着很多无关的东西。而作为一个不使用Windows API工作的开发员,我从这些章节中所感受到的乐趣可能要少一些,并且总想跳过这些内容。再次声明,这归根到底要取决于你在阅读本书时,所希望得到的东西是什么。
无论是专家和普通技术人员都会有喜欢The Old New Thing。开发员中的狂热分子要比我从本书中得到更多的东西,但无论是哪一种情况,本书都是值得一读的。
4. 关于Windows中的编程问题和UI问题,2007年1月25日,W Boudville(美国)★★★★☆
在本书中,令人烦恼的事情是你是否还记得Chen所讲述的一些事件,尤其是要回想到发生这些事件的时候。Chen在Microsoft的记忆小巷中漫步了一番,并且在本书中描述了在MS Windows操作系统的早期初具雏形时的奇闻轶事。他向我们展示了他在这方面上的深厚知识。
书中的内容涵盖了了各个不同方面,并且迎合了不同技术层次的读者身份。有些章节讨论的是用户界面设计,这并不需要技术背景。许多读者都可以很容易地理解。然而,大多数的内容实际上还是针对于现在的和以前的MS Windows程序员。在这些内容中,有着许多对编码技术的参考。在封底已经指出,了解这些奇闻轶事的不仅能够使读者获得开发能力的大大提高,同时也能够避免遭受更多的挫折。虽然我对开发能力大大提高的推论还不是很确定,但避免遭受更多的挫折这个说法看上去还算合理。
虽然对于有着其它知识背景的程序员来说,她也能够理解本书的大部分内容,但是她能得以应用的内容是非常少的。这台组装机(可能是这本书的最贴切比喻)是非常特定于MS Windows的。
对于如何在Windows中编写程序,在Raymond Chen的书中给出了一种有技术深度的,发人深思的和令人愉快的见解。他将这个世界上应用得最为广泛的API的历史带入到了我们的生活中,并且给出了这些API为什么这么做以及如何做的第一手资料。对于目前正在使用Vista的程序员或者有经验的程序员来说,如果正是想要记住一些在早期Windows开发中的趣事,那么这本书是最合适不过了。读者们在阅读本书之后,应该将书中的一些知识利用起来,这将使你的Windows程序更加完善!
2. 充满了许多关于Windows实用技术的好文章,2007年1月24日,James Holme,“Windows Developer Power Tools”的作者之一(俄亥俄,美国)★★★★☆
本书充满了许多极具娱乐性的文章,这些文章几乎涵盖了各个方面的内容,从为什么你不能通过XCOPY来安装Windows,到Win32对话框模板的演变历史等。好吧,这也可能是因为我以前不知道对话框模板的内容是如此地有趣,但除此之外,本书的其他部分充满着非常有趣的主题,这些主题很好地说明了Windows为什么会成为现在这个样子。
Chen在Microsoft的Win32世界中已经呆了很长的时间,并且他非常了解自己的知识领域。对于他所从事的领域,他是非常地擅长,而对于不知道的,他也是非常地坦率。他在DotNetRocks上的表现与本书是非常一致的:对于他的领域中一些非常深的研究,他都是很明确地说“那些内容超出了我所掌握的知识”。
那么,对于不在Win32上进行开发的程序员来说,这本书有着什么用?首先,本书对Windows中的一些基本行为给出了非常好的背景知识,例如为什么“关闭计算机”选项是放在“开始”菜单中,叠加图标的作用是什么,为什么注册表文件被叫做“蜂房”,以及关于国际化编程的一些奇闻逸事等。此外,书中还有许多的知识同样适用于在各个领域的人们:要小心所有人都可写的文件,服务器分页的影响,以及关于编写排序函数的一般性问题。
其次,这本书也可以被看作为一本普通的娱乐书籍。在编写本书的时候,Chen使用的是一种轻松的,幽默的写作方式,并且想方设法让其中的大多数文章都非常有趣。(要想让有着几页长的示例代码变得非常有趣几乎是不可能的,但是Chen基本上做到了这一点。)
总的来说,对于像我这样的人,这本书是一本很好的浏览读物。我已经说过,如果你正在进行Win32开发,这本书是很重要的——这也包括那些正在进行大量Interop编程的.NET开发员。
3. 一本关于Windows的正史和野史的很有意思的书,2007年1月13日,Thomas Duff “Duffbert”(波特兰,美国)★★★★☆
作为一个开发员,最常碰到的情况是…为了修改某个错误,你需要分析一个程序,在分析的过程中你遇到了一些奇怪的代码。“这是哪个白痴写的代码?”。而事实上,在编写这段代码的当时,很可能存在着的一些你所不知道的约束和限制。在The Old New Thing: Practical Development Throughout the Evolution of Windows这本书中,Raymond Chen讲述了这些问题,以及许多其他的故事。虽然这并不是一本能够让我自始至终聚精会神阅读的书,但它确实是一本很有意思的书。
内容:用户界面设计初探;Windows 95的精选回忆录;GetWindowText的神秘生命期;任务栏和通知区;莫名其妙的界面问题;GlobalLock函数的历史;关于Windows编程的一些简短主题;窗口管理;关于硬件的回忆录;对话框管理器的内部工作机制;软件开发中的一般性问题;深入研究Visual C++编译器;向后兼容性;语源与历史;窗口消息的发送与接收;国际化编程;安全;Windows 2000和Windows XP的回忆录;Win32中的设计问题;Windows中的“税收”;一些可笑的事情;索引。
Chen是开发Windows操作系统的程序员之一,他通过这本书来讲述Windows的开发 “历史”。书中的章节又被进一步划分为子章节,这些子章节的标题通常是以“为什么…”作为开头。在这些子章节中解释了,在当时的环境下,为什么会做出一些特殊的设计决策。本书所采取的是谈话式的写作风格并且略带一些嘲讽的味道,因此在很大程度上,你可以坐下来像阅读一本娱乐性的散文作品一样来阅读本书。例如,你将发现使用一部大词典来检查拼写错误(在牛津英语词典中,“werre”是一个正确的词)是没有必要的。此外,你还将了解到,为什么当软件需要在国际上进行销售时,不去维护地图一种明智的举动;以及为什么CR+LF是既成事实的行结束符?正是这些花絮和故事,让我觉得本书对我来说值得一读。
另一方面,本书讲到了许多的Windows API编程,包括示例代码,相互对照以及指导建议等。现在,如果你是忠诚的Windows开发员,那么你将发现有一些章节讨论了关于CreateMenu和CreatePopupMenu之间的区别以及什么是_purecall,这些内容更适合你的喜好。在这部分的内容中,狂热的开发员们将了解到为什么某个API看上去是如此地臃肿不堪,并且带着很多无关的东西。而作为一个不使用Windows API工作的开发员,我从这些章节中所感受到的乐趣可能要少一些,并且总想跳过这些内容。再次声明,这归根到底要取决于你在阅读本书时,所希望得到的东西是什么。
无论是专家和普通技术人员都会有喜欢The Old New Thing。开发员中的狂热分子要比我从本书中得到更多的东西,但无论是哪一种情况,本书都是值得一读的。
4. 关于Windows中的编程问题和UI问题,2007年1月25日,W Boudville(美国)★★★★☆
在本书中,令人烦恼的事情是你是否还记得Chen所讲述的一些事件,尤其是要回想到发生这些事件的时候。Chen在Microsoft的记忆小巷中漫步了一番,并且在本书中描述了在MS Windows操作系统的早期初具雏形时的奇闻轶事。他向我们展示了他在这方面上的深厚知识。
书中的内容涵盖了了各个不同方面,并且迎合了不同技术层次的读者身份。有些章节讨论的是用户界面设计,这并不需要技术背景。许多读者都可以很容易地理解。然而,大多数的内容实际上还是针对于现在的和以前的MS Windows程序员。在这些内容中,有着许多对编码技术的参考。在封底已经指出,了解这些奇闻轶事的不仅能够使读者获得开发能力的大大提高,同时也能够避免遭受更多的挫折。虽然我对开发能力大大提高的推论还不是很确定,但避免遭受更多的挫折这个说法看上去还算合理。
虽然对于有着其它知识背景的程序员来说,她也能够理解本书的大部分内容,但是她能得以应用的内容是非常少的。这台组装机(可能是这本书的最贴切比喻)是非常特定于MS Windows的。
评论交流
共有22人开贴评论 40人参与评论 16人参与打分 查看
评价等级:





发表于:2007-9-4 13:21:00
这本书我已经读上了,刚看一点点,简单谈下其它朋友对本书的看法吧。要说它是主要介绍windows95内幕的书,我以为,其实是讲解从win32到windows xp整个的一个windows家族的发展历程。只是windows95是处于一个操作系统诞生的黄金时代,很多的设计思路都是从那里开始发生变革的,windows xp包括windows vista的界面都是windows 95的雏形,所以会着重讲解一下当时的设计师在设计windows 95时的设计思想。这本书谈的主体是设计思想,只要是对windows有兴趣的用户,即始不做程序设计,也可以从这本书中了解到一些有趣的windows开发内幕,而对于从事相关技术开发的朋友,我感觉这本书可以获得比较有价值的设计思路。所以我以为,这本书讲的不是纯技术开发,而且windows系统的设计思路。至于书是不是好书,还要看个人的口味了。
| 我要写评论 |
| 查看所有评论交流(共22条) |


点击看大图






加载中...
