C++ Windows程序设计名著回顾

尽管Windows程序开发早已进入.NET时代,然而事实表明传统C++ Windows程序开发还会持续下去,除了习惯力量,在相对“低”层的系统软件开发领域,这种开发方式尚无有力的替代者。岁末年初,列此清单,既是总结,亦供新人参考。

2001年春,我在新街口新华书店西侧一个不起眼的小店里邂逅了对我具有重要意义的一本书。其塑料薄膜外包装、个性的封面设计以及大量的赞美之辞吸引了我。本书前半部分尤其精彩,阅读过半,我启动Delphi并检视了VCL架构一番(3年后终于看到这方面的一本好书1)。
  
深入浅出MFC 第2版
By 侯捷
Published by 华中科技大学出版社

几个
优秀的人在正确的时间做了正确的事情,造就了本书神话般的成功。在C++ Windows程序开发领域,MFC占据着支配性的地位,而在中国MFC程序员社群,这本书同样占据着支配性的地位。

Visual C++/MFC领域还有好几本外版名著(大都有中文版),参见侯捷老师撰写的“无责任书评:MFC四大天王”一文。
  
Programming Windows, Fifth Edition
By Charles Petzold
Published by Microsoft Press
中文版

不是每一个C++ Windows程序员都在使用Visual C++,即使使用Visual C++也未必一定使用MFC,即使使用MFC有时还是要直接调用Windows API。这部SDK程序设计经典清晰地解释了常用API并给出大量的范例。C++ Windows程序员应该人手一本。
  
Programming Applications for Microsoft Windows
By Jeffrey Richter
Published by
Microsoft Press
中文版

线程、挂钩、内存映射文件等对于初学者而言似乎披着一层神秘的面纱,而对于开发商业Windows应用的程序员来说,这些都不过是必备知识。在对这些高级内容讨论的深度和广度两方面,本书都是独一无二的。
 
  
Essential COM
By Don Box
Published by Addison Wesley Professional
中文版

COM早已成为Windows API的一个重要组成部分(是Windows提供API的一种重要方式)。没有人能像Don Box这样把COM解释得如此透彻。本书一举奠定Don Box COM世界“第一人”的地位。不过,这本书阅读门槛较高,对于初学者而言,Dale Rogerson的《Inside COM》应该容易阅读许多。
 

这些经典依然大行其道固然可喜可贺,不过也多少折射了国内软件业落后的现状。技术更替是一件挺耐人寻味的事情。除了公司政治和变化所导致的成本外,项目性质往往是应该考虑的更重要的因素。一个微不足道的例子:2002年夏天,我在电力自动化研究院负责一个水利枢纽调度集成项目,那时我早已使用Visual C++ .NET,而两个合作研究所一个在用Visual C++ 6.0,另一个则使用Visual C++ 5.0 — 我怀疑他们现在仍然使用VC5。也许对于“工控”这样的软件开发领域来说,很难找到“坚强的”理由来升级开发工具(和开发平台),更不要说转移到.NET上了……


[注1] 这本书就是李维先生的《深入核心 — VCL架构剖析》

荣耀
2005年1月
南京师范大学
www.royaloo.com