网友提问:
很多人说C++ 的MFC已经过时了,那新入门的人到底应该学什么?
优质回答:
举个简单的例子,在Windows系统开发UI程序,如果说使用Windows SDK相当于一代技术(这里的划分不够严格,只是通过类比让大家更容易理解),MFC就相当于第二代技术,C#、JAVA则相当于第三代技术,而QT则处于二代与三代技术之间,相当于二代半技术。
在MFC之前,使用C++开发桌面程序(Windows平台),只能通过调用Windows SDK提供的API,要付出很大的代价来处理UI程序中的各种消息,不仅要做很多繁琐的重复性工作,还特别容易出错。
MFC的出现改变了这一状况,它使用了一些技巧——消息宏映射,使得开发者只需要在代码中添加一些简单的宏,就可以实现事件消息与处理程序之间的响应,在当时来说,确实让人惊艳!
而QT则更进一步,它使用了信号-槽机制和一些辅助工具,如moc、uic、rcc等,分别用来处理信号与响应函数的关联、UI设计、以及资源管理等,更重要的一点它可以实现跨平台,当然代码需要重新编译。
C#和JAVA则更进一步,它们在语言层面解决了事件与处理函数的关联问题,不管是在开发效率和使用难度上都要比上面的技术更好一些。而且他们也可以实现跨平台。
在知道了这些技术的差别之后,我的建议是,如果是做桌面UI程序,可以使用C#或者JAVA等语言,C++更适合于做服务端或者算法方面的开发。一般在实际开发中,会使用多种语言混合开发,以便让每种语言都能发挥自己的强项,比如我个人的工作主要在图像处理方面,所以经常使用C#开发界面,而使用C++来写图像处理算法方面的代码。
最后谈一点个人的感受,即使有QT的支持,C++还是不适合做UI开发,效率太低!
其他网友回答
你想学啥子入门?如果是入门C++那就跟MFC没有关系,整个编辑器、编译器(MSVC,GCC,clang)再来一本经典书籍就可以开始了,如果你想入门一个C++应用库(GUI),那建议你选择QT,在多平台都可以用
其他网友回答
主要是市场需求没以前windows流行时候那么火了,目前招人也发觉具备这块的人特别特别少
其他网友回答
你可以试试 C++Builder。
面向对象,可视化,跨平台。
其他网友回答
还是应该学mfc,这个东西比qt那些更好入门,学会才去学其他的吧。