MFC是否过时?如何学习MFC?

过时与否?简单回答就是:没有过时。

是否需要学习MFC?简单答之:depends on。

学习MFC最好的书籍?是这本:http://www.china-pub.com/45715 《VC++技术内幕》,另外深入一点可以看《深入浅出MFC》(侯捷)。

——————————————–

为何没有过时?很简单,微软一直在更新MFC,如果知道MFC的真正含义,你是不会说出过时两个字的,Microsoft Foundation Class,这是微软C++界面库的基础。有人会提WTL或者ATL,OK,他们被用的不多。至于QT什么的,那不是微软的东西,再好微软也不会用的。

MFC没有更新吗?当然不是,如果你安装了VS2008或者2010就会不经意发现,那些wizard提示方式下,你可以建立出更多更酷的界面模式,那些都是QT、WTL么?当然不是,那都是MFC的功劳!!!

MFC一直在与时俱进,为了建立微软的和谐帝国而努力更新更新。

要不要学MFC?这个问题值得思考,一般来说,如果你问我这个问题,我会问你两个额外的问题来确定你知道你想问什么。第一个额外问题是:你的工作或者学习需要你在Windows下搞开发么?第二个额外问题是:你所谓的学习,是指仅仅会用会从toolbox拖拽?还是懂得Internal的机理,知道它的优劣?

如果你只是想在Windows下搞界面相关的开发,依此谋生或者做点软件之类,那么学完我推荐那本《内幕》已经差不多足够了。再多看看一些MSDN的相关版本更新文章就足够你在公司里厮混下去。

如果你想了解的更多,其实微软也给你这个机会,MFC实际上是“路一直都在”,CString也好CDialog也好,其实它们的代码微软早就给你了,就在VisualStudio的MFC目录下,完完整整的哦。可是有多少人会去读会去看呢?想了解哪个类的实现或者函数的实现,只要“go to declaration”就可以了。

还有问题?欢迎留言,只要不是白痴问题,我都会尽量回答。

《MFC是否过时?如何学习MFC?》有4个想法

  1. 高二开始玩MFC的高三仔路过……
    其实我觉得MFC还是一个不错的东西的,当然要除去“被臃肿”的那部分。CArray还是一无是处,CList似乎还是没有真正释放Node所占用的内存,仍然非线程安全……
    不知道是不是我学习方式的原因,我开始用MFC时看的书时初中时淘到的一本比较旧的《深入浅出MFC》,英文原名是MFC Internals:The Architecture of MFC(现在MS绝版了)。这本书几乎把MFC的各种实现的源代码分析了一个遍,以至于我现在用MFC时,都会习惯性的用VAX去翻源代码。
    个人对MFC某些设计还是比较赞的,比如MessageMap的实现没用使用大量的虚函数,CString的灵活性.etc似乎连WxWidegets的某些设计理念都有点神似MFC。
    MFC从VC6的4.X到2008的9.X,几乎每个版本都有不大不小的变化,甚至连CWinApp都改成了CWinAppEx
    不过在WinForm和WPF的冲击下,以及自家兄弟WTL的威胁下,MS MFC的RAD优势变得越来越不明显(Win Platform)
    但是无论怎么样,当一个人把这些AF用到一定程度的时候,其实AF已经不是什么问题了。就像Google会挖M$的人,但是不担心挖来的人不适应自己的东西。
    AF什么的,其实都是尘埃

  2. 这个题目根本不值得讨论。
    第一。MFC充其量是个帮助系统。简化你一点工作量而已。这样滴一个角色

    配谈过时不过时嘛?衍生品而已。

    第二。MFC也根本不用学习。当你熟练掌握C或者C++这种计算机语言后。你无非

    下载一个MFC类库详解而已。

发表评论