【内容简介】
本书是讲解Windows操作系统内部机制的一本专著。作者从基本概念入手,全面系统地介绍了Windows底层实现机制、Windows应用程序的基本构件(包括进程、线程、内存管理、动态链接库、线程本地存储和Unicode)以及各类Windows API等,并列举了大量应用程序示例,精辟地分析了Windows编程的各个难点和要点,为掌握Windows编程技巧提供了一条有效的捷径。
本书适合Windows编程人员参考。
作者简介:
Jeffrey Richter,是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作《Windows 95:A Developer'S Guide》大获好评,从而声名远扬。之后,他又推出了经典著作《Windows高级编程指南》和dWindows核心编程》。如今这两本书早已成为Windows程序设计领域的经典之作,培育了几代软件开发设计人员。Jeffrey是WinteIIect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。他对Windows思想的领悟、对Windows细节的熟稔,是其他任何作家难以企及的。他是Windows技术作家中当之无愧的一面旗帜。
【编辑推荐】
大师指点迷津,经典重装上市,揭开Windows内部的神秘面纱!
本书是讲解Windows操作系统内部机制的一本专著。本书从Windows API开始,然后相当深入地介绍了一些Windows的设计考虑及其运行机制,为读者掌握Windows编程技巧提供了一条有效的捷径。
本书帮助读者:理解Windows操作系统内部机制,精通32位或64位基于Windows的应用程序构件,掌握DLL的本质及其高级技术,使用结构化异常处理创建充分利用内存的应用程序,理解进和线程的实质,精通内存管理,用封装的可重用代码工具箱解决常见的线程同步问题,掌握Windows消息循环的原理。
【目录信息】
译者序
前言
作译者简介
第一部分 程序员必读
第1章 错误处理
1.1 自定义错误处理的实现
1.2 错误显示例程
第2章 Unicode
2.1 字符集
2.1.1 单字节和双字节字符集
2.1.2 Unicode:宽字节字符集
2.2 为何需要Unicode
2.3 Windows 2000和Unicode
2.4 Windows 98和Unicode
2.5 Windows CE和Unicode
2.6 评论
2.7 关于COM
2.8 如何编写Unicode源代码
2.8.1 C运行库的Unicode支持
<< 查看详细目录
【译者序】
本书是讲解Windows操作系统内部机制的一本专著,作者从基本概念入手,全面系统地介绍了Windows的各种基本构件,如进程、线程、DLL和内存管理等,并列举了大量应用程序,精辟地分析了构件的使用方法,为掌握Windows编程技巧提供了一条有效的捷径。对于不同水平的Windows编程人员来说,本书都具有极好的参考价值。.
侯捷先生在他的《Win32多线程程序设计》一书中说,搞Windows程序设计有两方面的资源是不可或缺的,一是MSDN,其次便是本书。可见这本书在Windows程序设计领域中的重要地位。本书的内容相当全面,加上作者亲自编写的十几个精巧程序来现身说法,因而成为Windows程序设计方面的一本圣典级书籍,..
<< 查看译者序
【前言】
Microsoft Windows是一个复杂的操作系统。它提供了如此多的特性和功能,以至于任何人都无法充分地理解系统的每个细节。Windows操作系统的复杂性也让学习它的人很难决定应该从何处入手。我本人总是喜欢从最底层开始,逐步学习和掌握系统的基本构件(basic building block)。一旦理解了系统的基本构件,循序渐进地学习高级知识就不再是一件难事。.
例如,我在本书中没有刻意讨论组件对象模型(Component Object Model,COM)。COM实质上是使用进程、线程、内存管理、DLL、线程本地存储、Unicode等基本构件构建而成的。如果对这些基本构件有所了解,那么理解COM实质上就是理解如何使用这些构件的问题。我非常..
<< 查看前言
【书摘】
第一部分 程序员必读
第1章 错误处理
在开始学习Windows提供的一些必要特性之前,有必要了解各种Windows函数是如何进行错误处理的。
当调用一个Windows函数时,系统首先验证传递给该函数的参数是否有效,然后开始执行该函数的任务。如果函数接收到一个无效的参数,或者由于其他原因导致该函数不能执行,则通过某种返回值来指示函数执行失败。表1-1给出了大多数Windows函数用到的返回值的数据类型。
当一个Windows函数返回一个错误代码时,了解该函数为何执行失败往往非常有用。微软公司已经编译了一系列可能的错误代码,而且为每个错误代码赋予了一个32位的数字。
在系统内部,当一个Windows函数检测到一个错误时,它常常使用一种称为线程本地存储(thread-local storage)的机制来将合适的错误代码号和被调用的线程联系起来(线程一本地存储机制在第21章中讨论)。这样就允许线程之间互相独立地运行,而不会影响彼此的错误代码。当函数返回其值后,该返回值会指示发生了一个错误。可调用GetLastError函数查看错误详情。
……