MFC有哪些引人注目的功能?为什么要为新项目选择它?
10年前,MFC是不错的选择.它仍然是Win32 API的一个很好的包装,但遗憾的是已经过时了.
奇趣科技的QT是一个更好的选择,有一个很大的优势 - 它独立于平台.使用MFC,你注定要注意Windows.
我仍然使用MFC用于各种应用程序.MFC从它的早期实现中获得了糟糕的说法,但它现在非常出色.我发现它比WTL更方便.此外,Visual Studio中的GUI工具已经设置好,可以使用MFC快速开发GUI,将控件映射到变量,DDX等.
对于我打算进行广泛分发的桌面应用程序,我仍然使用本机Windows应用程序,通常是在MFC中,因为我们仍然不能依靠您的客户拥有您将使用的.NET版本安装并要求他们安装它会导致您失去销售,更不用说客户服务因为试图让您的应用程序运行而遇到安装.NET的问题而头疼.
MFC的优势在于,它仍然比编写裸机win32更好,你可以分发一个不需要23-50Mb运行时的原生.exe,如.Net.
现在,如果你关注那些东西,那里有更好的替代品:C++ Builder,WxWidgets等.但有些地方不会考虑非Microsoft工具.
您可以改写问题,为什么要为桌面应用程序选择C++而不是C#.C++仍然提供速度优势,这对某些应用程序很重要(我为一家为电子交易创建软件的公司工作.速度很重要).
如果你打算开发一个仅在C++中针对Windows的桌面应用程序,那么MFC是最成熟的选择,在互联网上有很多基于MFC的免费代码,知识很多.
除了win32 api本身,MFC是唯一的主流Windows编程技术,在2011年经过15年以上仍然存在.早在2001年,每个人都说'MFC已经死了,现在就是Winforms'; 在2005年,每个人都说'MFC已经死了,现在都是XAML'; 现在是2011年,Winforms和XAML已经死了(OK XAML可能并没有真正死亡,但已经过了巅峰期),MFC仍然在更新最新的发展(功能区,Aero扩展,Win7 API等).
当然,这不能保证未来的任何事情,但是在这15年以上,编写了许多 MFC代码,它将在未来十年或几十年内继续使用.它可能不是最漂亮的技术,但它很好理解(它的优点和缺点)并且不像其他炒作技术那样是一个移动目标,这意味着真正想要完成任务的人可以依赖它(更多而不是替代品,无论如何).
(同样适用于C++,顺便说一句)
这是一种可能性 - 想象一个需要大量内存的应用程序,比如一个图形程序,一个游戏或者一些高性能的业务应用程序..NET应用程序占用内存已经不是什么秘密 - 在这种情况下,您可能需要一个精简的MFC应用程序作为应用程序的核心.您始终可以通过COM可调用包装器或直接通过C++/CLI加载和使用.NET组件,控件等.
所有人都说 - MFC是一种痛苦.请考虑使用WTL - 如果需要,您仍然可以调用.NET,就像我上面提到的MFC一样.WTL比MFC好很多:-)