给广大网友提供大量的问题与专业回答
当前位置:首页 > 热点问答 > 正文
已解决

mfc是什么意思 mfc过时了吗

来自网友在路上 164864提问 提问时间:2023-05-18 15:50:41阅读次数: 64

最佳答案 问答题库648位专家为你答疑解惑

mfc是什么意思 mfc过时了吗微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个

微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是微软公司提供的一个类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

搞MFC有饭吃嘛?搞MFC有饭吃嘛?

MFC 作为一种界面框架来说还是优秀的,做 UI 的一些基础逻辑都可以通过学习它掌握,除此之外作为一个非常复杂的 C++ 库如果你能熟练运用对编程水平会有很大提高。但是 MFC 作为一个产品来说它已经过时了,开发效率很低,而且微软已经逐步放弃对它的支持,不推荐使用。

MFC 做的东西主要是运行效率高,这一点很重要!MFC 在工控,图像处理,视频监控 等要求运行效率的产品是有市场的。不过建议也要学 qt ,毕竟跨平台是趋势,另外学 MFC 不要太纠结于界面自绘,很麻烦的...

搞MFC有饭吃嘛?搞MFC有饭吃嘛?

MFC可能对于熟悉windows api的人来说,觉得很容易使用。对于不熟悉windows api编程的开发人员,觉得MFC难用。MFC也是有优点的,整个框架设计的定位,是简化windows api的开发,对windows api进行了一层薄封装后,再加入各种实用的类,如容器,字符串,文件网络等,使开发windows程序更加快捷简单。如果不太懂windows api想学会MFC,这本来就是错误的认识。

多见于计算机行业初学者,尤其是计算机专业新生各种百度看看怎么弄出图形化的东西。桌面端GUI技术有很多(MFC、Qt、WinForm、WPF、Swing……),但如今早已是互联网及移动互联网时代,所以大家真的要慎重选择。不过还是可以学习一下的,至少能加深你对编程语言以及设计模式的理解。

搞MFC有饭吃嘛?搞MFC有饭吃嘛?

便于分析MFC的前景,也借助跟当前QT这种架构技术的比较,简单从几个方面看一下吧

语言本身

QT:跨平台,语法结构简单清晰。面向对象的特性体现的比MFC明显。代码写起来比较优雅,也就是说上手会快一点。

MFC:在Windows平台地位毋庸置疑,QT在windows下基本属于非主流了。个人感觉MFC相较于QT是比较杂乱的,你可以看下MFC以及QT的实例代码,直观上就可以了解了。并且要写MFC必须要知道Windows的消息循环机制。而QT开始时并不需要了解Windows底层的东西。

学习资源

QT:基本上只有官方的官网和demo了,相关的开发论坛比MFC的少很多,毕竟敲MFC的人要多。

MFC:MSDN资源,对于初学者来说可能MSDN比较枯燥,相关论坛和那种问答的资源要多很多,一般初学者遇到的问题都可以看到前辈们的解决方法。

项目现状

有些公司维护和开发的老系统,是MFC写的……这语言可能新生代的程序员都没听过,但是这个系统却用了十几年,也没人想重构,大概这就是祖传屎山的影响了。很明显,新项目不会用MFC这种框架(一大堆热门主流框架不用,用老框架,不怕掉坑里?)但是旧项目的话,鉴于重构火葬场的情况,原来用MFC写的代码又很难招聘到人维护和更新。

搞MFC有饭吃嘛?搞MFC有饭吃嘛?

架构分析

MFC这套Doc/View的设计源于20年前了,这种设计最适合写编辑器,微软自己最喜欢写编辑器就以为别人都要写编辑器。其实这是一套MVC,M就是document,V是View,C是Frame兼职做的。另外MFC也没有定义好对象间通信机制,导致大家胡搞瞎搞,用消息带着自定义结构体指针扔来扔去。也没有定义好对象间引用的方式,导致大家只好互相拿着原生指针。MFC可以用来写小程序,无法支持大型应用,除非你在上面再封装一层。

最后呢,选择什么GUI架构还是要结合项目需求和公司战略。

99%的人还看了

猜你感兴趣

版权申明

本文"mfc是什么意思 mfc过时了吗":http://ask.ycslggx.cn/2-13118-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!

推荐回答

    SQL Error: select * from ***_ecms_tk order by newstime desc limit 18