下面是这本书的总览:(原书的介绍是英文的,我已经做了翻译) Microsoft Windows is a complex operating system. It offers so many features and does so much that it's impossible for any one person to fully understand the entire system. This complexity also makes it difficult for someone to decide where to start concentrating the learning effort. Well, I always like to start at the lowest level by gaining a solid understanding of the system's basic building blocks. Once you understand the basics, it's easy to incrementally add any higher-level aspects of the system to your knowledge. So this book focuses on Windows' basic building blocks and the fundamental concepts that you must know when architecting and implementing software targeting the Windows operating system. In short, this book teaches the reader about various Windows features and how to access them via the C and C++ programming languages. 微软的Windows是一个复杂的操作系统。它提供了如此之多的功能,做了如此多的工作,以至于想要全面理解整个系统对于任何一个人来说都是一个不可能的任务。它的复杂性也让大家很难决定把学习重点放在哪里。然而,通常我喜欢从最底层的知识学起,好让自己获得对系统基础模块(这里我把building block翻译为“系统基础模块”)的深入理解。一旦你理解了这些基础模块,想要继续了解系统上层的知识就会变得很容易。所以这本书着重介绍了Windows的基础模块和基本概念,这些知识在你架构和实现一个windows平台下的软件是必须掌握的。简而言之,这本书向大家传授很多关于windows特性的知识,并且告诉大家如何通过c/c++访问它们。 Although this book does not cover some Windows concepts—such as the Component Object Model (COM)—COM is built on top of basic building blocks such as processes, threads, memory management, DLLs, thread local storage, Unicode, and so on. If you know these basic building blocks, understanding COM is just a matter of understanding how the building blocks are used. I have great sympathy for people who attempt to jump ahead in learning COM's architecture. They have a long road ahead and are bound to have gaping holes in their knowledge, which is bound to negatively affect their code and their software development schedules. 虽然这本书的内容并不涵盖一些Windows的概念--如组件对象模型(COM)--COM是构建在系统基础模块之上的,系统基础模块指的是进程,线程,内存管理,动态链接库,线程局部存储,Unicode编码等等。如果你知道这些系统基础模块的基本知识,理解com就是早晚的事,因为其本质就是了解如何使用这些系统基础模块。我非常同情那些跳跃基础的而直接学习com架构的人。他们前面还有长的路要走,他们的知识也必将有巨大的漏洞,这是必然对他们的代码和软件开发产生不利影响。 The Microsoft .NET Framework's common language runtime (CLR) is another technology not specifically addressed in this book. (However, it is addressed in my other book: CLR via C#, Jeffrey Richter, Microsoft Press, 2006). However, the CLR is implemented as a COM object in a dynamic-link library (DLL) that loads in a process and uses threads to execute code that manipulates Unicode strings that are managed in memory. So again, the basic building blocks presented in this book will help developers writing managed code. In addition, by way of the CLR's Platform Invocation (P/Invoke) technology, you can call into the various Windows' APIs presented throughout this book. Microsoft .NET Framework的CLR是另外一个在本书里没有详述的技术(但是,这个写在我的另外一本书《CLR via C#》, Jeffrey Richter, Microsoft Press, 2006里面)。然而,CLR实际上是一个DLL里面的COM对象,这个对象在进程加载这个DLL的时候产生,使用线程执行代码来操作内存中的Unicode字符串。因此,这本书里介绍的基础模块可以帮助开发者写出更好的托管代码。另外,通过CLR的P/Invoke技术,你可以调用本书介绍的大量Windows API. So that's what this book is all about: the basic Windows building blocks that every Windows developer (at least in my opinion) should be intimately aware of. As each block is discussed, I also describe how the system uses these blocks and how your own applications can best take advantage of these blocks. In many chapters, I show you how to create building blocks of your own. These building blocks, typically implemented as generic functions or C++ classes, group a set of Windows building blocks together to create a whole that is much greater than the sum of its parts. 所以这本书介绍的全部内容是:每一个开发者都应该密切关注(至少我这么认为)的windows的基础模块。每个模块讨论完以后,我还介绍了系统如何使用这些模块,和你如何让你的程序以最佳的方式利用这些模块。在很多章节中,我给大家展示了如何创建一个你自己的模块。这些模块,一般用泛型函数和C++类来实现,它们把一组Windows系统模块组织起来,创造了一个比所有这些模块加起来还要强大的整体。