评侯捷的<深入浅出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 ...
随机推荐
- Python中type与Object的区别
Python中type与Object的区别 在查看了Python的API后,总算明白了.现在总结如下: 先来看object的说明: Python中关于object的说明很少,甚至只有一句话: clas ...
- HDOJ 1423 Greatest Common Increasing Subsequence(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1423 思路分析:[问题定义]给定两个序列A[0, 1,..., m]和B[0, 1, ..., n], ...
- BZOJ3231(矩阵连乘,稍有点复杂)
题目:3231: [Sdoi2008]递归数列 题意: 一个由自然数组成的数列按下式定义: 对于i <= k:ai = bi 对于i > k: ai = c1ai-1 + c2ai-2 ...
- Xcode - 详解真机测试步骤
第一种从iOS9.0之后推出的免费开发者账号 1.注册开发者 * 注册Apple ID * 使用Apple ID登录苹果开发者中心,注册成为开发者 * 此过程为免费,只是为了让普通的Apple ID具 ...
- python中decorator
先讲一下python中的@符号 看下面代码 @f @f2 def fun(args, args2, args3, args4, ……): pass 上面代码相当于 def fun(args, args ...
- c# 流程控制
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Sort list by merge sort
使用归并排序对链表进行排序 O(nlgn) 的时间效率 /** * Definition for singly-linked list. * struct ListNode { * int val; ...
- 405 HTTP method GET is not supported by this URL
孙鑫java web开发详解P285里面提交Get网站弹出提示405 HTTP method GET is not supported by this URL 原因父类doGet()方法未覆盖. 应写 ...
- QT通过IP地址定位地址(用get方法取数据)
通过IP地址定位地址,是要通过查询数据库,如果自己做一个这样的数据库工作量就比较大,所以在网上找了一个查询IP地址的网址,通过调用这个网址查询来实现,但是这个有一定的弊端,如果没有网络或者这个网址不可 ...
- hibernate懒加载和json序列化冲突
因为懒加载这个对象属性只是一个代理对象,如果json直接当作一个存在的属性去序列化就会出现错误,所以就只能这样了,当然还有其他办法吧 或者在class上加上 @JsonIgnoreProperties ...