挺长时间了吧,这个帖子还没沉下去,使用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. 全面剖析XML和JSON

    1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许 ...

  2. Info.plist与Prefix.pch修改文件位置遇到的问题及解决方法

    如果要更改Info.plist与Prefix.pch文件实际路径,也就是实际文件的位置(不是在工程中的组织路径),需要到Build Settings中修改对应的配置,不然工程就找不到对应的Info.p ...

  3. SAP-MM:收货转储时提示 M7053“只能在公司代码 **** 的期间 2014/04 和 2014/03 中记账”

    错误信息   消息号M7053   解决方法 Step 1.使用MMPV进入"关闭账期"界面. Step 2.输入"公司代码"."期间".& ...

  4. ThinkPHP pdo连接Oracle的配置写法,提示报错

    'DB_TYPE' => 'pdo', // 数据库类型 'DB_USER' => 'user101', // username 'DB_PWD' => 'zb~!@#$%', // ...

  5. html contenteditable

    contenteditable 是html中的一個屬性,在HTML中,某些元素設置 contenteditable='true'  屬性時可以開啟該元素的編輯模式,contenteditable 可以 ...

  6. 关于 java.util.concurrent 您不知道的 5 件事--转

    第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things4.html Concurrent Collections 是 Java™ 5 的巨 ...

  7. Android(java)学习笔记224:横竖屏切换时Activity的生命周期

    1.横竖屏切换的生命周期     默认情况下横竖屏切换,先销毁再创建 2.有的时候,默认情况下的横竖屏切换(先销毁再创建),对应用户体验是不好的,比如是手机游戏横竖屏切换对游戏体验非常不好,下面两种方 ...

  8. 转载:C#中&与&&的区别

    原文地址:http://www.cnblogs.com/chinafine/archive/2009/02/17/1392309.html   感谢博主分享! 二元运算符 (&) 为整型和 b ...

  9. C#解leetcode 16. 3Sum Closest

    Given an array S of n integers, find three integers in S such that the sum is closest to a given num ...

  10. qq第3方登录的JS实现方式记录

    首先申请qq第3方登录接入的appkey和appid,具体方式http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth ...