Windows程序设计

佩措尔德

出版时间

2010-08-31

ISBN

9787302227397

评分

★★★★★

标签

编程

书籍介绍
这本书最经得起琢磨的,不是它教了你哪些API,而是它把Windows的“底层思想”讲透了:窗口的一切交互都通过消息完成,消息队列、消息循环、窗口过程三者如何协作。即便今天的Windows早已物是人非,多数现代API仍脱胎于Win95的核心架构,因此理解这套机制,比记住具体函数更重要。多位读者提到,读完它对掌握窗口创建、消息分发、GDI图形等基础大有裨益,做MFC时也豁然开朗。当然,也有读者直言它年代久远、部分代码已无法直接运行。所以它更适合想打通底层原理、而非追求速成的读者——一本值得精读、也可当长期参考书反复查阅的经典。
AI导读
核心看点
  • 本书是Windows编程领域的经典权威之作,系统性地构建了从基础到高级的完整知识体系。内容涵盖窗口机制、消息循环、GDI图形设备接口、多线程及动态链接库等核心主题,深入解析Windows底层架构原理,帮助读者彻底理解操作系统与应用程序的交互逻辑,是建立扎实Windows开发根基的必读教材。
  • 书中详细阐述了Windows消息驱动机制的本质,包括消息队列、窗口过程回调函数及非队列消息的处理流程。通过深入讲解句柄、设备上下文、映射模式等关键概念,揭示了图形输出与设备无关性的实现原理。这些底层知识对于理解现代高级框架如MFC、.NET的运作机制至关重要,是突破技术瓶颈、深入系统开发的基石。
  • 尽管部分技术细节如Win32 SDK直接调用在当今开发中已较少使用,但书中关于系统资源管理、内存安全、线程同步及合规性编程的指导思想依然具有极高的参考价值。它教会读者如何以正确、高效且符合系统规范的方式编写代码,避免常见的系统错误和资源泄漏,对于提升编程素养和解决复杂系统问题具有不可替代的作用。
读者共识
  • 读者普遍认可本书在Windows底层原理教学方面的权威地位,认为其对于理解系统机制、提升编程内功具有不可替代的价值。尽管部分读者指出书中内容陈旧、代码不可用,但多数人认为其核心思想依然正确,是深入理解Windows系统、突破技术瓶颈的必经之路,强烈推荐给希望深入系统开发的读者。
  • 许多读者反映,虽然现代开发框架屏蔽了底层细节,但学习本书有助于理解框架背后的原理,从而更好地使用框架并解决复杂问题。读者认为,掌握这些底层知识是区分普通程序员与系统级专家的关键,尽管学习过程艰难,但收获巨大,能够显著提升对系统行为的掌控力和调试能力。
  • 部分读者批评书中翻译质量参差不齐,存在术语错误和语句不通顺的情况,建议有条件者阅读英文原版。同时,读者指出书中部分内容已过时,不建议作为现代应用开发的入门教材。但总体而言,读者认为其作为系统原理参考书的价值依然巨大,是Windows开发领域不可多得的经典之作。
精彩摘录
  • "当windows程序开始执行时,windows首先会为该程序创建一个“消息队列”。该消息队列存放着应用程序可能创建的所有窗口消息。windows应用程序中一般都包含一小段为“消息循环”的代码,该段代码用于从消息队列中检索消息,并将其分发给相应的窗口过程(窗口回调函数)。其他消息则不经过消息队列直接发送给窗口过程。"
  • "客户区是一块应用程序可以自由绘图并向用户传达可视输出的区域。"
  • "真正有意义的东西发生在窗口过程中,正是窗口过程决定了窗口客户区的显示内容以及窗口如何对用户的输入做出响应。 应用程序通常不对窗口过程直接调用。窗口过程几乎总是由windows自身调用的。应用程序如果希望调用自身的窗口过程,可以使用SendMessage。"
  • "在windows中,窗口所发生的一切都通过消息的形式传递给窗口过程。 队列消息是指那些由windows放入程序的消息队列中的消息。在程序的消息循环中,消息被检索,然后投递到窗口过程中。非队列消息则是由windows窗口过程的直接调用产生的。队列消息主要由用户的输入产生,主要形式为按键信息。非队列消息包括队列消息以外的其他所有信息。通常由调用特定的windows函数引起。 从窗口过程的视角看,这些消息以有序,同步的方式来到的。在窗口过程处理某消息的过程中,程序不会被其他的消息突然中断。 虽然windows可以执行多线程。但是每个线程的消息队列仅为那些其窗口过程在该线程内执行的窗口进行消息处理,换"
  • "GDI的主要目的就是支持与设备无关的图形。windows程序应当毫无问题地在windows所支持的任何图形设备上输出。GDI提供了一些特殊的机制来彻底隔离应用程序和不同输出设备的特性。"
  • "图形输出设备分为两大类:光栅设备和矢量设备。大多数的PC输出设备是光栅设备,这也就意味着它们将图像表示成以点的形式构成的矩阵。该类输出设备有视频显示适配器,点阵打印机,激光打印机。矢量设备则使用线条来绘制图像。 GDI总体来说只是一个静态显示系统,对动画的支持很有限。如果是复杂动画,就用DirectX。"
  • "1.线条和曲线--------GDI支持直线,矩形,椭圆等 2.可被填充的封闭区域----------当一系列线条构成封闭区域时,可以使用画刷填充这个区域。 3.位图-------是一个二维的位数组,每个元素都对应显示设备上的一个像素 4.文本"
  • "映射模式和转换。图元文件是一个以二进制形式存储的GDI命令集合 设备环境包含了许多决定GDI函数如何工作的属性。这些属性使得GDI只需要提供少量参数(如起始坐标),而不需要提供windows在设备上显示对象时需要的所有信息。"
目录
第I部分 基础知识
第1章 起步
第2章 Unicode简介
第3章 窗口与消息
第4章 文本输出

显示全部
用户评论
大二买的?估计不进微软是不会再看这本书了。
主要还是侧重api 调用
年中的时候在豆瓣一同学那买了,花了70大洋,他见我不讲价,似乎有些吃惊。其实能半价买到这么好的绝版书,我早就乐开了花。这半年看了两遍,很好很好,终于把Windows的可视化程序设计这一块补上了
搞MFC时候看的。不看这个之前效率低下。
win32 API
我GUI编程是这个入门的你敢信?现在还没学会,在家里吃灰
虽然不做windows开发,但是这本书写的真好,通俗易懂,作者真的很厉害。
3个月,断断续续翻完了,配合光盘源代码文件,跑通demo玩了下,还挺有意思的,只是,感觉回到98年。。本来以为工作做Qt相关开发的,加上有时间,于是想通过这本书了解下win32,没想到最终还是去做Linux相关开发了,而且是后端。。不过也好,模仿写了个剪切板windows程序玩,解决了写论文时,复制英文参考文献粘贴翻译时那讨厌的换行符问题,大大提高了翻译阅读外文文献的效率......
用 C/C++ 就可以写 Win32 程序了,可以见到很多底层的 API,了解直观的功能背后的繁杂的底层逻辑。
严格来说,是第一本项目编程指导,想念信图的书卷味道。
下载
收藏