评侯捷的<深入浅出MFC>和李久进的<MFC深入浅出>

本文对比了侯捷的《深入浅出MFC》与李久进的《MFC深入浅出》,前者侧重MFC的设计原理,后者则关注MFC的具体使用流程。两者互为补充,共同提供全面的学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

侯捷的<深入浅出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章。那个版本我觉得很不好,因为后面还有几章比较重要的。大家下载后要注意是不是全的版本。

好了,说了这么半天,不贫了。我也是看到优快云上另一个帖子http://expert.youkuaiyun.com/Expert/topic/1144/1144689.xml?temp=.8551905,并今天下载到我找了很久的书,很高兴,发表些议论的。在那个帖子上,还有一些下载的网址,大家可以试试。最后,感谢将书上传的网友(虽然我不知道他是谁),并祝大家都学好MFC。

附:如果哪位网友知道这本书哪里还可以买到,望告知。原价28元,80元之内,我愿买一本。^_^

现在流行的Windows下的编程语言实在不少,所以在BBS上常常有人会问:我应该使用什么编程语言呢?其中,有一个大家认可的答案:真正的程序员使用Visual C++。 的确,Visual C++是一个功能强大、灵活、方便的编程工具,可以完成其他编程语言所无法完成的任务,可以让程序员方便地实现自己的设计,尽情的发挥自己地创造性。 Visual C++的强大无比的功能除了得益于C++的特性之外,更重要的是它具有体系完整、机制灵活、功能丰富的MFC类库。 所以,要讲Visual C++,必须讲MFC类库。 MFC的类库可以分两个层次,首先是实现MFC编程框架体系的核心MFC类库,然后是建立在核心MFC类库基础之上的扩展类库,例如,支持COM的类库,实现网络功能的类库,等等。随着Visual C++的不断升级,MFC类库的功能越来越丰富,越来越强大,但是,MFC核心类库是相对稳定的,特别是从Visual C++ 4.2开始到现在的Visual C++6.0。 本书的中心就是深入浅出地解析MFC类库,分析怎么使用MFC类库以及MFC类库的内部实现,揭开MFC复杂、深奥的面纱,让读者对MFC有一个全面、透彻、清晰的理解。关于MFC的核心实现,主要有以下几个方面。 首先,MFC采用C++的面向对象的特征封装了Windows的对象Win32函数,一定程度上隐蔽了底层Win32的复杂性。 其次,MFC采用消息映射的方法来处理Windows消息事件,隐藏了Windows窗口的窗口过程,简化了消息处理的复杂性烦琐性。 还有,MFC提供了一个以文档-视为中心的编程模式,并实现了以文档-视为中心的编程框架,简化了数据处理的过程。 而且,MFC提出了模块状态、线程状态、模块线程状态来支持多线程的编程设计DLL的编程。 本书分别从使用MFC的角度MFC内部设计及实现的角度讨论了上述内容,分析了MFC核心的设计实现;然后,在此基础上,进一步讨论了MFC对一些常用类的实现。有关章节的内容如下: 第一章,MFC概述。 第二章,解释MFC对Win32 APIWindows对象的封装,讨论各类MFC对象的使用,分析MFC对象Windows对象的关系。 第三章,讨论CObject的特性及其实现,包括动态类信息、动态创建、序列化的实现等内容。 第四章,讨论MFC的消息映射机制,分析MFC对各类消息的处理,例如对Windows消息、控制通知消息、命令消息、状态更新消息、反射消息的处理等;并揭示了MFC通过消息映射手段实现C++虚拟函数机制的原理。 第五章第六章,分析MFC编程框架启动关闭一个应用程序的过程,揭示MFC框架的内幕,剖析以文档模板为核心创建基于文档-视的应用程序的过程,展示MFC框架处理消息调用虚拟函数的时机位置。 第七、八、九章,介绍MFC的动态链接库、进程、线程等概念,以及MFC动态链接库的种类使用,讨论MFC下多线程编程的问题。并且进一步阐述MFC的核心概念之一:状态(模块状态、线程状态、模块线程状态),揭示MFC对多线程的支持机制,MFC实现规则DLL扩展DLL的内幕。 第十章,阐述MFC下的调试手段。 第十一章,讨论CFile类,主要分析了CFile的使用它对Win32文件函数的封装。 第十二章,讨论模式无模式对话框,分析MFC如何设计实现这两种对话框的功能,分析CDialogCFormView为实现有关功能而设计的虚拟函数、消息处理函数等。 第十三章,讨论MFC工具栏状态栏的设计及其实现,分析MFC是如何以CControlBar为基础,派生出CStatusBar、CToolBar、CDialogBar等子类,实现MFC工具栏状态栏标准处理。 第十四章,讨论MFC的Socket类。 第一章到第十章介绍了MFC的核心概念以及实现。在此基础上,第十一章到第十四章讨论了MFC一些常用类的实现。 本书的内容对MFC的初学者(最好对Visual C++Windows有所了解)提高者都是很有帮助的。 如果您是一个初学者,可以读第一至第六章。主要目的是建立对MFC的全面理解,了解MFC框架是如何支持程序员编程的。如果有读不懂的地方,可以跳过,直接阅读有关分析的结论。特别是第五章第六章,可以重点阅读,了解MFC是怎样来处理有关消息、调用有关虚拟函数的。 然后,还可以读第十章,第十一至第十四章。特别第十二章,可以重点阅读,它是MFC从CWnd或者CView派生出特定的类实现特定功能的例子,可以帮助您进一步理解MFC,并且学习如何设计实现一个特定的类。 如果您对MFC有一定的掌握,可以进一步阅读第八第九章,了解MFC处理DLL线程的知识。对于第一至第六章、第十至第十四
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值