mfc是什么 很多人说C 的MFC已经过时了,那新入门的人到底应该学什么?
很多人说C 的MFC已经过时了,那新入门的人到底应该学什么?。MFC在军工和自动化的许多领域随处可见。即使我们的大多数产品都是由MFC开发的,尽管有些产品使用QT重构。您选择MFC。我们先来看看效
很多人说C 的MFC已经过时了,那新入门的人到底应该学什么?
。MFC在军工和自动化的许多领域随处可见。即使我们的大多数产品都是由MFC开发的,尽管有些产品使用QT重构。
您选择MFC。我们先来看看效果图。以下是QT(PS:author-CSDN-one-to-two-threeli)的一个新特性QSS开发的一组界面蒙皮变化效果图
!作为C接口开发的首选接口库,它具有优雅的API设计、跨平台支持、完整的官方文档以及持续的维护和更新。与MFC不同的是,即使是它的教父微软也放弃了它。最后,QT对新手非常友好。
作为一名学生,不必担心是选择MFC还是QT,或者像duilib这样的第三方接口库。实际上,花更多的时间学习数据结构、算法、网络、内存管理、多线程、动态库和消息机制更好吗?
接口,C不是真正的强项。C和电子不够香吗?
现在MFC还流行吗?
看了这个问题之后,几乎100%的受访者表示MFC已经过时了。我对如此高的可能性感到惊讶。
总之,MFC并不流行,但它并没有过时。
众所周知,C是一种经典而高效的编程语言。MFC作为一种Windows编程框架,曾经有过大量的支持者。但是微软没有在MFC上做更多的创新,例如,没有像第三方公司的控件那样在界面上发布新的工具。微软已经将精力投入到C#,甚至开发了VisualC.NET,一个帮助MFC程序员过渡到C#的工具。
微软的初衷。Net是为了与Java竞争,在跨平台应用中平衡Java。后来,随着互联网的迅速发展,桌面应用成为边缘化少数群体的需求。大量编码人员加入互联网公司,C和C被忽视,用户比例不断下降。
今天的桌面开发,除了C是C#,其他都不是主流(我可能不知道,也有大量的国外程序员没有用过VS)。C开发了C11/C14/C17,这被大多数数字农场主所忽视。第三方控件也大大弥补了MFC接口的不足。但是C和MFC对初学者的要求比C更高,这是毋庸置疑的。在当今的效率时代,年轻人无疑会选择C#(更多的年轻人会涌向互联网,因为这个行业支付的费用更高)。
然而,Cᦇ的随机性将严重损害程序员的良好素质。一个没有纪律的程序员会编写大量的私生子代码,这会让后来的程序员或C程序员哭哭啼啼,直接崩溃。
我手头有一个项目。有两三个。几位“前辈”写的6000多行CS文件。变量满山都是,数据处理水平不分,接口慢,不懂行业应用。充其量只是实验室的半成品,实用价值不大。
C#的方便之处在于它可以更快地引用第三方控件,而无需任何约束。因此,懒惰的程序员会过分依赖各种控件,迫使不适当的控件应用于复杂的工业领域。这对于C/MFC程序员来说是不可想象的。
我的意思是,互联网行业的程序员不适合讨论这个问题。桌面应用程序、MFC或C程序员并没有过时。不同的是,一个C程序员可以在三到两个月内开始,但C程序员需要三到五年的时间来开发自己。
无论做什么,都要有很好的计划,严格的自律,不能把代码拼凑起来。如果你急功近利,你只能做一堆垃圾。
c 程序员转java好转吗?
在这个时候,我终于有时间写一篇我想写的文章。其实,这篇文章的标题并不十分准确。当C程序员编写java代码时,他们不必转用java而放弃C,他们只有一个选择。这两种语言各有优点。我们不要谈语言争端。让我们假设一个朋友需要这样的角色转变。在编写了多年的C语言之后,突然一个项目需要用Java来编写。
Java语言和C语言在语法上有很多相似之处,但在本质上有区别。当一个合格的C程序员写下每一行代码时,他必须记住如何存储代码中的每一个变量,堆栈结构是什么,如果处理不当,哪一块内存会造成很大的麻烦。然而,Java程序员有些不同。由于Java语言规范和Java虚拟机规范是分离的,再加上自动GC,操作性较差。但这不是坏事。毕竟,手动内存管理有其复杂性。
就个人而言,对于C程序员来说,Java语法没有问题。可以说80%以上的结构是相同的,所以这不是问题。但是如果你学英语语法,你能通过大学英语六级考试吗?我们能和外国人见面聊天吗?不一定。顺便说一句,我们要学习方言、成语和句型。当我们进入Java世界时,我们必须按照Java的规则来玩。例如,如何创建一个对象、如何比较两个对象、如何使用枚举类型、如何编写泛型代码、并发代码何时要实现上层结构、何时在代码中抛出异常以及何时使用反射。我认为,一个更专注于技术的人可能还需要至少三个月的项目培训才能获得资格。当然,我说的前提是这个C工程师有相当的基础,所以他可以站在一座山上看另一座山。
所以我认为C程序员转向Java的捷径是:学习Java习惯用法、模式和项目调整。
C程序员的另一个优势是,由于主流JVM是用C/C代码编写的,因此喜欢深入研究的人会非常有帮助。只要你有足够的调试技巧,对一切都了如指掌,这种方法也适用于JavaScript,因为V8也是C,因为标准C语言没有为操作系统提供内容,如果你想为系统开发应用程序,就需要使用系统提供的API。比如微软的系统是MFC,使用起来很麻烦,不能跨平台。然而,Java是一个虚拟机。您只需使用虚拟机提供的类库即可完成应用程序,无需再学习系统API,只要操作系统支持Java虚拟机,跨平台就很方便。还有封装效率的问题。Java提供的类库相对简单,使用方便。这与C的MFC有关,也与开发环境有关。用VC6.0开发Windows应用程序是用C语言编写的,我不认为它在Java环境中是所见即所得。研究Java的组织结构对您来说是很费时的。但是Java环境要简单得多。最后,C语言不支持面向对象的Java,但我认为这不是重点,因为如果不使用Java提供类,就不需要从头开始构建Java