挺长时间了吧,这个帖子还没沉下去,使用MFC开发有十多年了,结合自身的体会,随便说几句:
1、MFC是一个C++的基础类库,封装了绝大多数的API函数,主要是用来创建带UI的应用程序,服务端程序或着不带UI的模块用STL更好,不建议MFC;
2、MFC是一个框架型类库,封装复杂,为简化代码使用了大量的宏,隐藏了大量底层细节,初期接触会感觉晦涩难懂,对使用者的要求较高,学习周期长;
3、MFC中创建程序主要是SDI、MDI两种主要应用框架(对话框程序简单,不认为是框架),熟悉之后可以灵活扩展,同时自动获得了动态创建,序列化等通而重要的机制,不熟悉则会感觉无从下手;
4、MFC类库开放全部源码,在VC6配套的4.2版中连make文件都有,用户可以自行定制修改编译出自己的版本,之前就曾经为一直一个大量应用MFC的程序到LINUX平台,自行编译了一个跨平台的裁剪版MFC;
5、MFC诞生比较早,最终的4.0版好像是win95时代随着vc5发布的吧,后面的一系列版本感觉都没有颠覆性的变化,在PC满天下的时代,对PC端UI程序开发的支持,几乎是MFC的全部,对移动设备、触屏设备、嵌入式设备等平台的开发,尽管也有,但一直没成为主流,所以如果是非PC应用开发的话,建议您最好离MFC远一点;
6、MFC自身带的UI类,界面不够绚丽,一些复合型的复杂控件不够丰富,使用的时候最好搭配一些扩展类库BCG等;
7、个人感觉MFC只是一个擅长于PC平台UI应用程序开发的一套类库,QT感觉更倾向于写一些跨平台UI应用;
8、C#这些年也有所涉猎,但主要用来写WEB程序,桌面程序也写过,各种类封装的非常多,开发效率高,但是有时感觉封装过度,而且让使用者远离事情真相,有一种隔靴搔痒的感觉,对于我这种操作系统都想自己编译完跟进去调试的人来说,感觉超级别扭,另外一个就是运行期即时编译的方式也感觉很不爽,还有就是安全性,不混淆的代码用工具一分钟就能把源码逆出来,即便是混淆后的,如果抽一天时间学习以下IL,也是轻而易举的事情,凡此种种吧,.net基本上也是能不用则不用。

http://bbs.csdn.net/topics/391817496?page=12

MFC的优势:  比直接使用WINDOWS API开发界面快  有对象概念
MFC的缺点:  不能跨平台
                        开发速度慢
                        不支持界面数据分离 容易写出不可维护的代码
                        窗口太多需要关心双缓冲闪屏问题
                        界面开发速度普遍跟不上需求变更速度
                        
总之MFC垃圾的不能在垃圾了  它是垃圾中的战斗机 垃圾中的J-8  战斗力就是个渣渣

------------------------------------------------------------------------------

不能夸平台,是你自己方法不足
开发速度慢,是你自己经验不足
代码难维护,是你自己水平不足
双缓冲问题,是你自己能力不足

开不动飞机,就说飞机是垃圾
碰碰车最好开了,两岁的小屁孩都会,可先进

中国特色的工程师啊
天天嫌弃人家的集成环境
自己编一个集成环境不就有了吗?
写一个集成环境又不是很难

好了,2B们又来了
那那是一个人能做的啊,那得多有水平啊
2B们就这样
光想吃好的,还等别人喂到嘴
最后喂不到嘴的就是差评
最后也就只剩个B嘴了

http://bbs.csdn.net/topics/391817496?page=13

很多时候,使用的工具越先进,人越笨;得到得越轻松,人越懒。

C体系的,汇编体系的,以及汇编+C体系的人,绝对不怕人踢馆

------------------------------------------------------------------------------

没读过MSDN例子代码的Windows程序员都是在瞎混!
MSDN98\SAMPLES\VC98\*.*

想结束瞎混生涯的Windows程序员请下载安装MSDN98:
MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix,
MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl

MFC 2.0的源代码在Visual C++ 2.0的光盘上就有。
VC++2.0 MSVC20 "Microsoft Visual C++ Version 2.0" "1994 Microsoft Corporation"
http://download.csdn.net/detail/zhao4zhong1/3253384

Windows下的grep0
grep 多文件查找指定字符串 来自C:\Program Files\Borland\CBuilder6\Bin\
http://download.csdn.net/detail/zhao4zhong1/4381913

使用MFC开发有十多年了,结合自身的体会,随便说几句(不能样样都依赖别人,C体系的人,绝对不怕人踢馆)的更多相关文章

  1. 基于MFC开发的指纹识别系统.

    MFC-FingerPrint 基于MFC开发的指纹识别系统. 效果图如下: 在第12步特征入库中,会对当前指纹的mdl数据与databases中所有的mdl进行对比,然后返回识别结果. 一.载入图像 ...

  2. 新版.Net开发必备十大工具(转)

    Snippet Compiler Snippet Compiler是一个基于 Windows 的小型应用程序,你可以通过它来编写.编译和运行代码.如果你具有较小的代码段,并且你不想创建完整的 Visu ...

  3. 记Windows的一个存在了十多年的bug

    bug Windows有一个bug,持续了十多年,从Windows Visita开始(2007年),一直存在,直到Windows11(2021年)才修复(其实也不叫修复,后面我再具体说),而Windo ...

  4. 【转载、推荐】不要自称是程序员,我十多年的 IT 职场总结

    注评:一气读完后,有些和我的观点类似.这篇文章显然是外国老写的,但是不妨碍我们的跨国交流. 如果我可以给每个工程教育增加一门课,它不会涉及编译器.门电路或是时间复杂度,而是一门介绍行业现实的入门课,因 ...

  5. 程序员带你学习安卓开发,十天快速入-对比C#学习java语法

    关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到 ...

  6. S3C2416裸机开发系列十六_sd卡驱动实现

    S3C2416裸机开发系列十六 sd卡驱动实现 象棋小子    1048272975 SD卡(Secure Digital Memory Card)具有体积小.容量大.传输数据快.可插拔.安全性好等长 ...

  7. vc++MFC开发上位机程序

    用vc++MFC开发过不少跟单片机通讯的上位机程序了.搞懂了MFC架构,开发还是很快的,与底层单片机程序通讯,可以用串口.usb.网络.短信形式.串口现在用的越来越少了,一般电脑跟单片机在一块,使用串 ...

  8. (转)不要自称是程序员,我十多年的 IT 职场总结

    其他: 我是一名程序员,工作很努力,为什么绩效还总是垫底? 外企,中年失业何去何从? 来公司半年了,也悟出了一些道理. 如果我可以给每个工程教育增加一门课,它不会涉及编译器.门电路或是时间复杂度,而是 ...

  9. 使用Visual Studio进行 Android开发的十大理由

    [原文发表地址]Top 10 reasons to use Visual Studio for C++ Android Development! Visual Studio: C++跨平台的移动解决方 ...

随机推荐

  1. JavaBean的boolean isXXX反序列化问题

    JavaBean规范中规定boolean的getter/setter 为isXXX/setXXX,包装类Boolean的getter/setter 为getXXX/setXXX,其中XXX为变量名(I ...

  2. 关于lucene的IndexSearcher单实例,对于索引的实时搜索

    Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...

  3. Directx 3D编程实例:多个3D球的综合Directx实例

    最近朋友建议我写一些关于微软云技术的博客留给学校下一届的学生们看,怕下一届的MSTC断档.于是我也觉的有这个必要.写了几篇博客之后,我觉得也有必要把这一年的学习内容放在博客做个纪念,就这样写了本篇博客 ...

  4. android bitmap的 一些简单操作

    /** 获取 drawable 的图片 可以循环 1.图名 2.drawable 3.包名 **/ int imgid = getResources().getIdentifier("ic_ ...

  5. 你好,C++(12)怎样管理多个类型同样性质同样的数据?3.6 数组

    3.6  数组 学过前面的基本数据类型之后,我们如今能够定义单个变量来表示单个的数据.比如,我们能够用int类型定义变量来表示公交车的216路:能够用float类型定义变量来表示西红柿3.5元一斤. ...

  6. mac下使用brew安装svn javahl的问题

    eclipse老提示javahl太久必须得1.8以上,以前不知道什么时候在/usr/bin装过1.7的svn. 1. 删除1.7的svn sudo rm /usr/bin/svn 2.使用brew安装 ...

  7. [转] 用SBT编译Spark的WordCount程序

    问题导读: 1.什么是sbt? 2.sbt项目环境如何建立? 3.如何使用sbt编译打包scala? [sbt介绍 sbt是一个代码编译工具,是scala界的mvn,可以编译scala,java等,需 ...

  8. java多态---ABC案列

    class A{ public void show(){ show2(); } public void show2(){ System.out.println("我"); } } ...

  9. OSX10.11 CocoaPods 升级总结

    本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流. Podfile.loc 文件变化 前几天一个小伙更新了CocoaPo ...

  10. mysql 大表 Sharding [转]

    参看以下两篇文章 http://www.dedecms.com/knowledge/data-base/mysql/2012/0820/9172.html http://dbanotes.net/da ...