注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统伟大的产品:Windows进化启示录

伟大的产品:Windows进化启示录

伟大的产品:Windows进化启示录

定 价:¥99.00

作 者: Raymond
出版社: 电子工业出版社
丛编项:
标 签: WINDOWS 操作系统/系统开发 计算机/网络

购买这本书可以去


ISBN: 9787121278297 出版时间: 2016-03-01 包装: 平塑勒
开本: 页数: 476 字数:  

内容简介

  说起Windows系统,很多人都是又爱又恨。它为我们的工作学习生活带来很多便利和乐趣,提供了无数的可能,也带来了不少烦恼。凭借在微软Windows开发团队十多年的工作经验,本书作者Raymond Chen将向你揭示你不可不知的Windows系统内幕。为什么Windows的工作方式是这样的?为什么按“开始”按钮能够关机?为什么GetWindowText函数的行为很奇怪?Windows系统的很多奇怪行为是有逻辑可循的,有其历史原因。本书帮助你了解Windows这个伟大的产品的进化史,理解Windows设计人员在技术和用户体验、区域文化、政治等因素上的权衡与考量,从其中获得启发。

作者简介

  聂雪军,2011年毕业于华中科技大学计算机系统结构专业,获工学博士学位。现就职于湖北省海洋工程装备研究院智能信息技术研究所,任虚拟制造室主任。在计算机领域工作与研究13年,主持过多个国家级科研项目及企业级产品研发,涉及的领域包括遥感数据处理系统、大规模存储系统、嵌入式GPU并行计算以及海洋工程装备三维设计平台等。技术图书译者,翻译过《Exceptional C++中文版》、《团队制胜: 掌握软件项目成功主动权》、《C++编程风格》、《Windows高级调试》等。

图书目录

第 1 章 用户界面设计初探 为什么要单击“开始(Start)”按钮来关机 为什么Windows 没有“专家模式(expert mode)” 对话框的默认按钮是“取消” 最好的设置是:即使你没有意识到这些设置的存在,但它们依然按照你所期望的方式在工作 为了显示我们的超群智慧,现在就来问一个你回答不了的问题 为什么安装程序不会问你是否希望保留操作系统文件的新版本 功能设计的思考 什么时候应该禁止选项,而什么时候又该删除选项 什么时候应该将“…”放在按钮或者菜单项的后面 自动售货机的用户界面设计 室内门锁的用户界面设计 Windows 用户界面中“睫毛膏”的演变 第 2章 Windows 95 的精选回忆录 为什么在世界地图中,当前时区没有被加亮显示 为什么当内存超过 1GB 时,Windows 95 无法启动 为什么在Windows 95 中有些函数叫作BEAR、 BUNNY 和PIGLET BOZOSLIVEHERE 和TABTHETEXTTOUTFORWIMPS 表示什么含义 在Windows 95 特别版的包装盒中都有些什么东西 Windows 95 引出了每个人的罗尔沙赫氏测试 登录时的武术图片 为什么一个非常大的词典反而不好 了解Windows 95 的启动声音 如果不在意正确性,写专栏文章是很容易的 为什么在系统属性页中对内存的大小进行了取整 为什么硬盘指示灯每隔几秒钟闪一下 寻求更快的系统陷阱 一个字节曾经价值一美元 每个产品支持电话的成本相当于卖出一个Windows 拷贝 为什么在Windows 的光盘中没有包含Tweak UI 不能通过xcopy 来安装Windows 买下一个Egghead 软件商店 Windows PowerToys 的历史故事 Windows 如何选择最终构建编号 为什么在安装系统补丁包时系统的构建编号不会增加 第 3 章 GetWindowText 函数的秘密 窗口如何管理文本 深入了解GetWindowText 函数 如果我不喜欢这些规则,那该怎么办 能否给出一个示例程序来说明这种差异 为什么GetWindowText 的规则如此奇怪 第 4 章 任务栏与通知区域 为什么有些人把任务栏叫作“托盘” 为什么任务栏默认是在屏幕的底部 为什么在任务栏中的时钟并不显示秒 为什么不在任务栏中显示模拟时钟 为什么当任务栏竖直停靠时,“开始”按钮上的文本消失了 为什么当用户单击“X”按钮,通知图标不会收到消息 第 5 章 令人困惑的界面问题 那些小小的覆盖图标是什么 为什么当我登录时,有些不希望看到的文件/文件夹会自动打开 对文件来说,文件名字体的颜色代表什么含义 为什么在高级选项对话框中,在每个选项后面都会加上“开”或者“关” Alt+Tab 中的图标顺序是如何确定的 为什么文件夹的“只读”属性非常奇怪 当我单击空白任务栏按钮时,这些按钮消失了,发生了什么事 “最小化所有窗口”和“显示桌面”之间的区别是什么 在菜单中的粗体文本表示什么含义 自定义的网页图标是从何而来的 任务管理器的标签和按钮到哪里去了 拖动一个文件是表示移动还是复制 为什么“链接”文件夹总是不断地自我创建 为什么同时选择多个文档进行打印时,文档的打印顺序是乱的 我在产品支持部门的一天 吹掉连接器上的灰尘 1G 字节到底有多少 为什么不能删除“仅用于测试/评估”的标记 第 6 章 GlobalAlloc 函数的历史 从前的故事 选择符 过渡到Win 32 实现示例 第 7 章 Windows 编程中的一些话题 “临时”程序 获得在标题图标中的自定义右键菜单 CreateMenu 与CreatePopupMenu 有什么区别 为什么窗口管理器会自动销毁菜单 仅当窗口在屏幕上可见时才进行绘制 判断窗口是否被覆盖了 用位图刷来实现平铺效果 DC 画刷的好处是什么 用ExtTextOut 函数来绘制实心矩形 用StretchBlt 函数来绘制实心矩形 在显示字符串时去掉那些难看的方框 没有所有者的信号量 自动复位的事件只是一个毫无意义的信号量 第8 章 窗口管理 为什么会收到伪WM_MOUSEMOVE 消息 为什么没有WM_MOUSEENTER 消息 白屏 空心画刷的作用是什么 桌面窗口有什么特殊的地方 禁止窗口和激活窗口的正确顺序 恢复窗口位置时的问题 界面模态与代码模态 WM_QUIT 消息与模态 为模态界面设置正确的所有者窗口 与进入模态的程序进行交互 定时消息框的简单版本 临时窗口 在GWLP_USERDATA 中的附加窗口数据 定时消息框的改进版本 定时右键菜单 为什么窗口在被销毁之后还会收到消息 第 9 章 关于硬件的回忆录 硬件的向后兼容性 光驱 微软公司的网络:比“地狱”差 1.7 倍 有时候制造商会自取其辱 欺骗WHQL 的驱动程序认证过程 20 英尺长的计算机 USB 手推车 检测到了新设备:波音 747超频带来的问题 第 10 章 对话框管理器的内部工作机制 关于对话框过程 对话框模板的发展 为什么需要对话框模板 对话框是如何创建的 模态对话框的消息循环 嵌套对话框以及DS_CONTROL 为什么需要对话框循环 为什么对话框编辑器从 100 开始设置控件的ID 在DefDlgProc 函数中做了哪些工作 不要将焦点设置在被禁止的控件上 在IsDialogMessage 中做了什么工作 为什么有些消息框中的“X”按钮是被禁止的 第 章 常见的软件问题 为什么夏令时与我们的直觉不同 为什么当文件复制到软盘时,文件的时间戳会发生变化 不要相信返回地址 编写排序比较函数 可以从另一端来理解契约 实用主义和纯粹主义之间的争论 优化通常是违背直觉的 在服务器上,分页=死机 不要保存任何能够重新计算的结果 通过增加其他组件的开销来提升性能 轮循的性能问题 检测内存泄漏的简单方法 不好的缓存策略将导致内存泄漏 第 12 章 深入研究Visual C++编译器 析构函数在什么时候调用 COM 对象的布局 调节转换器 指向成员函数的指针是非常奇怪的 什么是__purecall 第 13 章 向后兼容性 有些应用程序的本意就是要造成崩溃 当程序使用未公开的结构时 为什么不阻止那些使用了未公开结构的程序 为什么 16 位DOS 和 16 位Windows 仍然存在 像NUL 和CON 这些保留文件名的作用是什么 为什么(有时候)在UNC 路径前面是一个驱动器盘符 不要轻视“猎鹿者”这个游戏的威力 有时候,游戏中的bug 只有在玩了一段时间后才会显现出来 Shell Folders 键的故事 保持错误码的向后兼容性是很重要的 没错,我们实现了这个功能 有些程序在为操作系统打补丁时将陷入困境 即使在内部数据结构中也存在着兼容性问题 为什么Windows 让BIOS 时间保持为本地时间 版本号的检测 破坏IUnknown::QueryInterface 的几种方式 当程序假设操作系统永远不会发生改变——之一 当程序假设操作系统永远不会发生改变——之二 伪显示控制面板 伪可视化风格 第 14 章 一些名字的来源和历史 在WPARAM 和LPARAM 中,字母W 和L 分别表示什么意思 为什么在Windows 98 中,显示器的最大数量是 9 为什么注册表文件被叫作蜂窝 16 位Windows 中对资源的内存管理 HINSTANCE 和HMODULE 之间的区别是什么 在WinMain 函数中,hPrevInstance 参数的作用是什么 为什么GlobalWire 函数被叫作这个名字 LocalAlloc 和GlobalAlloc 之间的区别是什么 GMEM_SHARE 标志的作用是什么 为什么在转换到LPARAM 之前会进行一个多余的转换 为什么有些注册表函数的名字以Ex 结尾 SHGetMalloc,SHAlloc 和CoGetMalloc 之间的区别是什么 为什么Windows 错误报告程序的昵称是DrWatson DirectX 4 出了什么问题 为什么HANDLE 类型的返回值如此不一致 为什么文本文件是以Ctrl + Z 来结束的 为什么行结束符是CR + LF TEXT、__TEXT 与__T 和UNICODE 与__UNICODE 为什么对话框在初始创建时是隐藏的 当程序在内部做修改时,没有人会注意 如果FlushInstructionCache 没有做任何事情,为什么还要调用这个函数 如果InitCommonControls 没有做任何事情,为什么还要调用这个函数 为什么InterlockedIncrement/InterlockedDecrement 这两个函数只是返回结果的符号 为什么会存在WSASetLastError 函数 为什么在Windows 中使用了基于广播的机制 在任务栏出现之前,窗口最小化之后被放到了什么地方 为什么在计算桌面窗口大小时会把任务栏也包含在内 为什么在按下Alt 键时,光标将停止闪烁 ES_OEMCONVERT 风格的作用是什么 在文件系统隧道背后隐藏的故事 为什么NTFS 和资源管理器在对文件名进行排序时是不一致的 日期/时间控制面板并不是日历 Windows 如何重新设定DLL 的加载基址 SYSTEM_FONT 和DEFAULT_GUI_FONT 是什么字体 为什么上下控件中的箭头是相反的 Windows 95 发布会的门票 第 15 章 窗口消息的发送与接收 发送消息和投递消息 发送消息的生命期 投递消息的生命期 生成的投递消息 SendMessageCallback 将在什么时候调用回调函数 当消息超时后,SendMessageTimeout 函数将执行什么操作 澄清一些关于消息处理的谬论 如何知道消息的发送者/投递者 不能用PostMessage 来模拟键盘输入 第 16 章 国际化编程 在Unicode 上做大小写映射是很困难的 关于错误大小写映射的趣事 为什么不能旋转文字

本目录推荐