我自己对于没有学会MFC始终耿耿于怀,都什么时代了啊,但是我仍然坚持会去学MFC,因为MFC虽然落后与复杂,但是在Windows平台上仍然是无所不能的(其实Windows平台仍然是唯一可以赚钱的平台,看看QQ就只提供Windows版本,虽然它早就换掉了MFC、使用DIRECTUI开发)。何况我是一个后知后觉的程序员,对编程世界的窥探只是略知一二,既然我从VCL里学到那么多营养和技巧,MFC当然也可以,何况不学会SDK和MFC,又怎么能真正说自己懂Windows开发呢?会SDK和MFC还可以让自己深入Windows底层做开发。再说学MFC有那么难吗?我也算已经精通C++,并且掌握大多数Windows消息与API的使用,还可以横向与VCL进行比较,所以不要害怕,一定要把MFC踩在自己脚下,特此写一点笔记给自己加油!

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

学习和使用了这么久Windows编程,不仔细学习直接处理消息和申请使用内存等特点(而不是把相关内容托管给语言或者框架),那样的话,就只能停留于开发应用软件层,无法做到知其然和所以然。所以必须学习MFC,才可以随心所欲的掌控Windows下的一切资源。但现在MFC的工作机会有点少,因为一方面在应用开发层可替代的语言太多,尤其是C#和VB,当然还有Delphi,另一方面MFC本身太复杂,也不够现代化,杀鸡用牛刀,学习和招人的成本都很高,不清楚维护项目的成本高不高。我只能说MFC是深入学习和理解C++/面向对象/COM/Windows消息/Windows底层/开发驱动和超难工具的一个好东西,否则就很难用到它,很难用到的意思是,不是它不好,而是。。。但是对于我个人而言,C++基础已经很强了,消息机制也理解的不错了,为什么不顺带深入研究一把呢?虽然它不能立刻带来产品开发上的好处。何况MFC尽管落后,但也是大师们创造和实现的,对于我这样一个没有能力实现同等框架的小白来说,必然还是有许多可学之处的。所以MFC必须学,没有选择。

开发世界里,服务器被Linux编程分掉很大一部分,PC开发被手机App分掉一部分,剩下的桌面开发被C#分掉很大一部分,且VB和Delphi同样不甘示弱也要分掉一小部分,Web更是被PHP和Java瓜分完毕,所以留给MFC的领域真的很少了,不过这只是市场面上的分析,与我个人无关。

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

刚刚发现一篇文章,兼听则明:

MFC,一开始就错了

http://www.cppblog.com/huaxiazhihuo/archive/2012/05/30/176751.aspx

给自己加油,一定要学会MFC!(刚刚发现一篇文章,兼听则明: MFC,一开始就错了)的更多相关文章

  1. 测试一下Word发布刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了。

      刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了.   刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了.     ...

  2. MFC下调用控制台和控制台下MFC库的支持

    1.MFC下调用控制台 在CWinApp的InitInstance中对话框的DoModal之前加入 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T(" ...

  3. VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)

    VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html   上一讲中讲了VS20 ...

  4. 在共享DLL中使用MFC 和在静态库中使用MFC的区别

    使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC          第一种顾名思义.        ...

  5. MFC学习笔记(一): 不用MFC向导如何新建一个MFC程序

    使用Visual Studio新建一个空项目,项目命名为HelloMFC,完成后,打开项目属性页面,将配置属性选项卡中的常规项打开,将其中的MFC的使用属性栏改为:在静态库中使用MFC或者在共享DLL ...

  6. VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)

    上一节中鸡啄米讲了CFile文件操作类,本节主要来说说MFC异常处理. 在鸡啄米C++编程入门系列的最后一节鸡啄米:C++编程入门系列之五十(异常处理)中,鸡啄米讲了C++标准异常的处理机制,如果你还 ...

  7. MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC(转)

    原文转自 https://blog.csdn.net/albertsh/article/details/52838419 1.使用标准Windows库 使用WINDOWS SDK API库,不使用MF ...

  8. 【转】一篇文章,教你学会Git

    一篇文章,教你学会Git 在日常工作中,经常会用到Git操作.但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼.本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令 ...

  9. 我不信这篇文章能让你学会C语言,但是我还是想分享一下!

    前言 C 语言是一门抽象的.面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首 ...

随机推荐

  1. asp.net 前后台数据交互方式(转)

    https://blog.csdn.net/luckyrass/article/details/38758007 一.前台直接输出后台传递的数据 后台代码: // .aspx.cs public st ...

  2. Appium_pytest fixture的使用

    一.定义fixture方法 # -*- coding:utf-8 -*-import pytestfrom baseutil.DriverUtil import DriverConfig @pytes ...

  3. 洛谷——P1012 拼数

    https://www.luogu.org/problem/show?pid=1012#sub 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整 ...

  4. JavaScript推断undefined的技巧

    两种方法: 处理变量为undefined的情况: v = v||null;    //假设v为undefined,则其值变为null 双感叹号:!!,把null/undifined/0转换为bolle ...

  5. 计算两个String 类型的时间相关几个月

    /** * 返回两个时间段相隔几个月 * @param date1 * @param date2 * @return * @throws ParseException * @throws ParseE ...

  6. Windows Route 路由表命令整理

    Windows Route 路由表命令 在本地 IP 路由表中显示和修改条目. 语法 route [-f] [-p] [Command [Destination] [mask Netmask] [Ga ...

  7. JS里面的indexOf()函数

    stringObject.indexOf(searchvalue,formindex); searchvalue在字符串首次出现的位置,位置是从0开始算的.

  8. javasciprt cookies 操作

    <script type="text/javascript"> function getCookie(c_name){ if (document.cookie.leng ...

  9. hdu5389

    题意:给你n个人每一个人手里有一个id,然后给你两个数a和b.让你把n个人分为两组.条件是 一组人手里的id和等于a 另一组人的id和等于b,这里的和是指加起来之后对9取余,假设sum等于0 则sum ...

  10. Java中关于static语句块的理解

    Java中关于static语句块的理解 一.static块会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法. 实例一 public class A{ String name ...