说句老实话,很久没碰C++的书了,毕竟自己的本行是C#,最近在Windows的应用程序上开发碰上了点问题,想对windows编程的原理做些了解,正好有朋友推荐了这本书,就拿来看看。
仅仅是粗略看了看,就对自己以前的知识有些汗了。
本书分为五大部分,必备知识、工作机理、内存管理、动态链接库及结构化异常处理。
对于必备知识简单过了一下,以前还算有所了解。
在工作机理这里对进程和线程的概念又多了更深一步的了解,进程和线程的区别貌似是一道考的非常多的面试题,自己可能非托管的代码写的太多了,一用线程就是System.Threading.Thread,但其后面真正的原理和反而关注的少了,本部分用了8章将近300页介绍此内容,在线程基础中介绍了何时应该创建线程、何时不应该创建线程并提到了一些对初学者有益的经验,比如"用户界面线程的优先级通常高于工作线程,这样一来,用户界面才能迅速响应用户的操作"、"多线程应用程序中对共享资源如何加锁"等等都提供了有价值的建议。
内存管理部分则对Windows内存体系结构、虚拟内存、栈、堆等进行了分析,对于习惯了GC的我了解一下为什么需要创建堆、怎样才能做更有效的内存管理无疑很有价值。
动态链接库中涉及的DLL注入和API拦截无疑是很酷的事情,对于书中使用注册表、Windows Hook、远程线程、木马DLL来进行DLL注入的案例当然要一个个试试才算过瘾,而对于其中对于API拦截的案例"Last MessageBox Info示例程序"貌似可以改良为一个类似于QQ尾巴的病毒.
而结构化异常处理部分的应用程序的自动重启与恢复则真好是我最近要关心的问题,^_^。
本书对打算使用Windows开发的程序员了解底层实现机理还是很有价值的,不少案例颇有研究价值,看来我要买一本收藏一下了