别学MFC了,要学就学这些...

Posted lzl678

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了别学MFC了,要学就学这些...相关的知识,希望对你有一定的参考价值。

今天看到几大公众号联合送书,有算法、python、容器、Spring等相关的书籍,其中有一本 << VC++深入详解>> 显得有点与众不同,引起了我的注意,触发了点滴回忆……

遥想多年以前,这本书也是我的入门书籍之一,有了电脑后,装了开发环境尝试编译书中的例子,从此开始了 MFC 的入坑之路。时至今日,在工作中还在用,或许未来的一段时间里还要继续使用。

虽然我还在使用,但是对于之前没接触过 MFC 打算学习的人来说,建议还是不要学了。不过在今天这个时代,打算学习的人想来不会太多,毕竟现在是云、大数据、万物互联的时代,大多数人都在学 Java、Python、Docker 及其相关的技术。虽然我内心强大,但想到此处还是不由得有些落寞……

学什么

如果不学 MFC,那打算开发桌面客户端使用什么技术呢?

如果使用的语言是 C++,建议使用 Qt;如果使用的语言是 C#,建议使用 WinForm。下面从不同的方面做些简单的比较:

  1. 开发环境:Qt Creator 是 Qt 的官方开发环境,但是在我短暂的使用过程中还是觉得的 VS 比较好用,通过官方提供的 VS 插件,搭配熟悉的 VS 就是最优的 Qt 开发环境。界面设计方面,Qt 的设计器和 WinForm 的设计器都比较好用。

  2. 基础类库:有了丰富的基础类库,才能提高开发效率。在这一点上 Qt 和 .NET(WinForm 只是其中的关于界面的部分)都含有各种各样的类库来满足不同的开发需求。

  3. 资料丰富:Qt 和 WinForm 都有非常丰富的资料,无论是官方提供的技术文档,还是已经出版的技术书籍。

  4. 跨平台:Qt 是基于 C++ 的跨平台的库,而 WinForm 只能在 Windows 平台使用。(当然在其它平台可以使用 .NET 的开源实现版本 Mono,Mono 是由 Xamarin公司开发的跨平台 .NET 运行环境,已被微软收购,而官方的 .NET 也已开源。)

是 Qt 还是 WinForm,更多的可能还是要根据工作的不同需求来定。如果还没参加工作,可以都了解下,然后根据个人喜好进行选择。这些都是界面相关的部分,在学习这些的同时,还要学习软件开发相关的其它通用的知识,而这些才是需要更加关注的地方。

MFC 的 3 个问题

回到 MFC,为什么不建议学习它?简单说下我的 3 个理由:

  1. MFC 是微软创建的类库,而现在微软已经将其放弃。多年不再更新,且新版本的 VS 默认不再安装(我安装的版本中 VS2015 已经默认不再安装)。

  2. 基础类库:前面提到过有了丰富的基础类库,才能提高开发效率。而MFC 只是对 Win32 的封装,类库不丰富。

  3. 界面资源:使用 MFC 开发界面时,产生的界面资源都存储在 .rc 文件中,控件 ID 都存储在 resource.h 中。多人开发进行合并时容易产生 ID 冲突等问题。而且由于资源都是存储在一个文件中,已开发的界面难以复用。

其它

除了 MFC、Qt、WinForm,还有其它一些桌面客户端开发技术:

  • Electron:该技术是近几年比较流行的桌面客户端开发技术,值得关注。官方介绍是“使用 javascript, html 和 CSS 构建跨平台的桌面应用”。我目前使用的基于该技术的应用有 VS Code、Typora、Yu Writer等。
  • CEF:学习资料比较少、难度比较大。网易的一系列软件如网易云音乐、有道词典、云笔记都基于此开发。
  • wxWidget:基于 C++;跨平台;类库丰富;比较小众。
  • WPF:属于.NET 的一部分,相对于 WinForm 学习难度大一些;
  • WTL:基于 C++;资料少;只与界面相关。
  • ……

- - - End - - -


技术图片
欢迎扫码订阅我的微信公众号,阅读其它相关文章。

本文作者: Lzl678
本文链接: https://www.cnblogs.com/Lzl678/p/11032326.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

以上是关于别学MFC了,要学就学这些...的主要内容,如果未能解决你的问题,请参考以下文章

<请教>我学了C语言的基本语法,现在想深入的学习C语言该咋学习? 要学来可以开发windows风格的程序。。。

中专计算机应用都有哪些课程

想用c#编写上位机,是否要学wpf的编程?有没有好的教材推荐?

本科以下别学 IT 了,切身经历

别学框架,学架构

译别学框架,学架构