评侯捷的<深入浅出MFC>和李久进的<MFC深入浅出>
侯捷的<深入浅出mfc>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了。
而李久进的<mfc深入浅出>,听说的人可能就少得多。原因听说是这本书当时没有怎么宣传,而自从1999年第1版后,似乎也没有重印过,现在市面上根本找不到,所以大部分人都不知道。我手里现在恰好有一本,是从图书馆借的。这本书全名为<mfc深入浅出——从mfc设计到mfc编程>李久进编著,华中理工大学出版。此书极佳!
我这本书是1999年9月第一版,印数居然只有5000册。这么好的书只印5000册,而市面上都让一堆破烂玩意充斥着……
这本书在写作目的上和侯捷的那本<深入浅出mfc>很相像。都是具体介绍mfc的原理和mfc的设计的。
看有的帖子说这本书难,这倒没有感觉到。当然,我看这本书的时候已经学完mfc的很多东西了,也看过侯捷那本。不过,这本书确实不大适合入门。而比较适合精通。
和侯捷那本书比起来,这两本书的风格很不一样。侯捷的那书的特点是剖了很多mfc的源代码,喜欢用代码说明问题,包括自己模拟mfc的方面实现一个类似的构架(什么什么仿真),而李久进的那本书不是这样,他用了很多的图表,具体介绍了mfc干很多事的时候的具体过程,比如mfc创建的时候及退出的时候具体的调用函数的过程(具体函数的调用关系)。这觉得这部分极为重要,这也就是我推崇李久进这本书的原因。而侯捷的那本书这部分内容非常少。这想,这可能是由于侯捷觉得,这部分内容不需要单独介绍,大家自己剖代码就可以解决问题。这确实不错,李久进的那本书中的内容如果自己剖mfc的源代码,内容都可以找到。但这是一个非常花工夫的事情,更不要说mfc的实际代码中要考虑各种各样的问题(保护,检查),代码的思路不可能非常清楚,这无疑增加了读代码的难度。和自己花时间一点一点剖mfc代码相比,看看这本只有266页的书无疑有效得多。
从内容上来讲,侯捷的那本<深入浅出mfc>更关心的是mfc的设计,或者说更像是想知道mfc是如何做到它所做到的东西的——从目的上说,是希望在了解了mfc的实现方法以后,自己也做出一个类似的东西来(你看别人的源代码的时候,就是这个目的)。而李久进的那本<mfc深入浅出>更关心的是mfc的使用,看完这本书,当你需要做某件事的时候,你会很清楚mfc是在哪个函数中完成这个工作的,你知道应该重载哪个函数,知道如何实现你的功能。但看完侯捷的那本书,你只是学到了方法,而按照侯捷的方法,你可能还得用半年时间才能剖完相关的代码,学到李久进的那本书中所提到的东西。
我确实非常推崇李久进的<mfc深入浅出>,但这并不意味着我贬低侯捷的那本书。其实,我也非常感谢侯捷的那本书,从这本书中,我学到了一个重要的学习的方法:就是自己追踪mfc的源代码,自己修改mfc的代码,实现自己的功能。这种学习的方法,使用编程工具的方法极其重要。我从侯捷的书中,学到了方法。而在李久进的书中,我学到了内容。但是真正到了你要用的时候,你不可能只用李久进的书中的东西就行了。你实际碰到的问题不会那么单纯,不会容易到你看看某个函数的流程图表就可以的程度。你还是需要自己动手,自己学mfc的实现,自己写代码——而这些东西,正是侯捷的书中可以教给你的。
你是希望要一桶鱼,还是希望学习钓鱼的方法——要一桶鱼可以解当务之急,学习钓鱼的方法却可以让你终身受益。而现在,我们有了两者兼得的方法——李久进的<mfc深入浅出>像是一桶鱼,而侯捷的<深入浅出mfc>就像是钓鱼的方法。看完两本书,两者兼得,何乐而不为呢。:)
这本书现在市面上已经无售了,但还好,这本书有很全的电子版本,从网上可以下载。我刚刚是从这个网址下到的这本书http://www.copathway.com/vchelp/archive.asp?type_id=68&class_id=1&cata_id=14&article_id=680,提醒大家注意,这本书总共14章,最后一章叫做“socket类的设计和实现”。网上常见的一个电子版本是380k左右的chm格式的版本。只有前8章。那个版本我觉得很不好,因为后面还有几章比较重要的。大家下载后要注意是不是全的版本。
好了,说了这么半天,不贫了。我也是看到csdn上另一个帖子http://expert.csdn.net/expert/topic/1144/1144689.xml?temp=.8551905,并今天下载到我找了很久的书,很高兴,发表些议论的。在那个帖子上,还有一些下载的网址,大家可以试试。最后,感谢将书上传的网友(虽然我不知道他是谁),并祝大家都学好mfc。
附:如果哪位网友知道这本书哪里还可以买到,望告知。原价28元,80元之内,我愿买一本。^_^
评侯捷的<深入浅出MFC>和李久进的<MFC深入浅出>的更多相关文章
- 快笑死,侯捷研究MFC的原因
		
与我研究VCL框架代码的原因一模一样:就是N年了,感觉自己还是没有掌握Delphi,惊叹别人各种各样神奇的效果,自己却不会,更不知为什么这样做,离高手的距离还有十万八千里.而且编程的时候,就像侯捷说的 ...
 - <软件架构与设计模式>侯捷老师关于Adapter类在STL中的深入解析和模式探讨
		
题外话:侯捷老师难得一年就来上九堂课就要会宝岛,特此留念签名赠语及合照以自勉. 学海无涯,为勤是岸 <正文开始> 昨天晚上连上了3个小时的大课探究单单讲了Adapter一个类,幸运的是本 ...
 - From COM to COM  侯捷 1998.06.12
		
摘要: 本文簡介 C++ Object Model 和 Component Object Model 的基本概念,並引介四本書籍: 1. Inside The C++ Object Model 2. ...
 - 侯捷C++ Type traits(类型萃取
		
泛型編程編出來的代碼,適用於任何「吻合某種條件限制」的資料型別.這已成為撰寫可復用代碼時的一個重要選擇.然而,總有一些時候,泛型不夠好 — 有時候是因為不同的型別差距過大,難以產生一致的泛化實作版本. ...
 - 侯捷STL学习(一)
		
开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...
 - list源码4(参考STL源码--侯捷):transfer、splice、merge、reverse、sort
		
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...
 - list源码1(参考STL源码--侯捷):list节点、迭代器、数据结构
		
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...
 - list源码2(参考STL源码--侯捷):constructor、push_back、insert
		
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...
 - list源码3(参考STL源码--侯捷):push_front、push_back、erase、pop_front、pop_back、clear、remove、unique
		
list源码1(参考STL源码--侯捷):list节点.迭代器.数据结构 list源码2(参考STL源码--侯捷):constructor.push_back.insert list源码3(参考STL ...
 
随机推荐
- Android自定义控件(36篇)
			
http://blog.csdn.net/lmj623565791/article/details/44278417 http://download.csdn.net/user/lmj62356579 ...
 - android中文字高亮设置案例
			
在android中我们有时候需要对一些标示性的文字进行高亮[用不同的颜色显示],例如微博中的@**等等...这些特效是通过SpannableString这个类来实现的 思路是将要显示的string进行 ...
 - Installing on CentOS/RHEL / KB forum / Ajenti
			
Installing on CentOS/RHEL / KB forum / Ajenti Ajenti → KB → Installation Is it?: Inappropriate Spam ...
 - A/B(扩展欧几里德)
			
A/B Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
 - Clojure绘制UML
			
简单介绍 使用Clojure封装了Graphviz的使用.眼下主要实现了UML的绘制 使用 以命令模式的UML为例,演示cdraw的使用 安装Graphviz cdraw是对Graphviz的简单封装 ...
 - 开发板-PC机(宿主机)-虚拟机(VM)之间网络通信设置方法及须要注意的问题
			
1.不使用路由器交换机 硬件连接: 使用网线将开发板和PC机相连 串口线将PC机和开发板相连 使用命令: ifconfig -a 串口控制端查看开发板的网络配置 route -n 串口控制端查看开发板 ...
 - Servlet的学习笔记
			
一.Servlet生命周期 init(ServletConfig config) ----->初始化 service(ServletRequest req, ServletResponse r ...
 - The Power of Reading——英语学习小技巧之七
			
This method is "The Power of Reading" and it comes from an article by Dr.Stephen Krashen. ...
 - 英文:known good assembly(KGA) / 中文:确认好的组装件,已知好组装件
			
英文:known good assembly(KGA) / 中文:确认好的组装件,已知好组装件 正确地操作印制板装配,并可作为标准件与其它同类型装配件比较的组装.也称黄金组装.
 - 转:C++:从子类访问父类的私有函数
			
众所周知,c和c++的数组都是不安全的,因为无论c还是c++都不提供数组边界检查功能,这使得数组溢出成为可能.从某个意义上说,c和c++是一种缺少监督的语言,然而这也正是其魅力所在.c++给予程序员更 ...