给自己加油,一定要学会MFC!(刚刚发现一篇文章,兼听则明: MFC,一开始就错了)
我自己对于没有学会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,一开始就错了)的更多相关文章
- 测试一下Word发布刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了。
刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了. 刚刚发现通过Word 可以直接发Blog 感觉很新奇,先看看,如果可以呢,将发通知的改了. ...
- MFC下调用控制台和控制台下MFC库的支持
1.MFC下调用控制台 在CWinApp的InitInstance中对话框的DoModal之前加入 AllocConsole(); // 开辟控制台 SetConsoleTitle(_T(" ...
- VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)
VS2010/MFC编程入门之二(利用MFC向导生成单文档应用程序框架)-软件开发-鸡啄米 http://www.jizhuomi.com/software/141.html 上一讲中讲了VS20 ...
- 在共享DLL中使用MFC 和在静态库中使用MFC的区别
使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC 第一种顾名思义. ...
- MFC学习笔记(一): 不用MFC向导如何新建一个MFC程序
使用Visual Studio新建一个空项目,项目命名为HelloMFC,完成后,打开项目属性页面,将配置属性选项卡中的常规项打开,将其中的MFC的使用属性栏改为:在静态库中使用MFC或者在共享DLL ...
- VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)
上一节中鸡啄米讲了CFile文件操作类,本节主要来说说MFC异常处理. 在鸡啄米C++编程入门系列的最后一节鸡啄米:C++编程入门系列之五十(异常处理)中,鸡啄米讲了C++标准异常的处理机制,如果你还 ...
- MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC(转)
原文转自 https://blog.csdn.net/albertsh/article/details/52838419 1.使用标准Windows库 使用WINDOWS SDK API库,不使用MF ...
- 【转】一篇文章,教你学会Git
一篇文章,教你学会Git 在日常工作中,经常会用到Git操作.但是对于新人来讲,刚上来对Git很陌生,操作起来也很懵逼.本篇文章主要针对刚开始接触Git的新人,理解Git的基本原理,掌握常用的一些命令 ...
- 我不信这篇文章能让你学会C语言,但是我还是想分享一下!
前言 C 语言是一门抽象的.面向过程的语言,C 语言广泛应用于底层开发,C 语言在计算机体系中占据着不可替代的作用,可以说 C 语言是编程的基础,也就是说,不管你学习任何语言,都应该把 C 语言放在首 ...
随机推荐
- vue使用marked.js实现markdown转html并提取标题生成目录
html: <template> <div class="wrapper"> <div class="container"> ...
- SpringCloud核心教程 | 第三篇:服务注册与发现 Eureka篇
Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全 ...
- CISP/CISA 每日一题 11
CISA 每日一题(答) 一个合理建造的数据仓库应当支持下列三种基本的查询格式: 1.向上溯源和向下溯源——向上溯源是对数据进行总计:向下溯源是将数据进行细化: 2.交叉溯源——通过通用属性访问数据仓 ...
- Spring学习总结(9)——Spring AOP总结
spring IOC和AOP是Spring框架的两大核心基石,本文将对Spring AOP做一个系统的总结. 什么是AOP AOP(Aspect-Oriented Programming,面向切面编程 ...
- shell-查看手机分辨率
使用如下命令,可以查看手机分辨率 adb shell dumpsys window displays 运行结果如下 Display: mDisplayId= init=1080x1920 480dpi ...
- JS 数字格式千分位相互转换
/** * 将数值四舍五入后格式化. * * @param num 数值(Number或者String) * @param cent 要保留的小数位(Number) * @param isThousa ...
- vue 星星评分组件
显示评分和打分组件,可现实半颗星星效果 效果图: 参数名 类型 说明 score Number 分数 ,默认0,保留一位小数 disabled Boolean 是否只读,默认false,鼠标点击可以打 ...
- 16、cgminer学习之:popen函数和system函数详解(执行系统命令)
1.popen函数我们先用man指令查一下popen函数: 函数说明: (1)popen()会调用fork()产生子进程,然后从子进程中调用/bin/sh -c来执行参数command的指令. (2) ...
- 启动Tomcat,startup.bat一闪而过的解决办法
1.打开命令行:win+R --> cmd2.将解压后的tomcat\bin\startup.bat文件拖到控制台窗口中,回车. 这样就可以看到错误信息的提示,根据提示修改即可.
- Dcloud课程7 单例模式一般用在什么场景
Dcloud课程7 单例模式一般用在什么场景 一.总结 一句话总结:连接数据库,这样就保证了和数据之间只有一个连接,从而能够不占用多余资源,这样就极大的减少了资源浪费,减少了mysql或者说服务器压力 ...