MFC 過時了嗎?


我不覺得MFC有什麼過時的。


確切的說,是被微軟拋棄了。


每種語言都有其生命周期,MFC是屬於英雄遲暮的那一類,繼承者目前來看可能會是QT之流,說得不對,希望大家拍磚!


肯定有人說,沒有!這些人多是中年人士。

肯定有人說,早就過時了。這些人多是年輕一輩。

但凡這種涉及到某種技術的東西你都不應該只聽一個人或者一群人的言論。大部分人常用的技術就那麼幾種,自己最熟悉的技術也最了解其優點和缺點。但對於不熟悉的技術理解通常是片面的。所以你還是多問問為好。

我從來沒學過MFC,當年我的一個中年大叔老師極力推薦我們學這個,但在對比了多種能畫出來界面的技術以後我就決定放棄了。也許某些技術現在很流行,但過兩年風向一變誰知道什麼技術又變成了今日的MFC。所以決定去做演算法,圖像處理這類的。本身對這種界面技術依賴就不是很大,而且在不濟還有OpenGL和DirectX。當然用.NET 的WinForm隨便拖個界面出來看看處理效果方便快捷又簡單。而且MFC不用第三方的話,真的,很醜。。

說了這麼多還沒扯到點上,唉。。最近廢話偏多。。

如果看目前的微軟的主推方向的話,MFC無疑是過時的。雖然目前還在提供更新,但大多是修改BUG,新的功能已經很少添加了。在推.NET 的時候微軟主推過一段時間WinForm,後來改成WPF。WPF沒試過,不過WinForm那性能實在讓人吐槽無力。後來有來了HTML5。.NET一直以來給人性能低下的感覺,用C++的話MFC也用的不是很多(個人感覺而已,並未實際統計)。目前接觸到使用MFC的項目要麼是之前的項目現在在維護,要麼是要使用其他的庫而那些庫只支持MFC。如果我要做C++的桌面應用,很可能會用DirectUI等技術,也不會用MFC。


MFC 過時與否,顯示了 Microsoft 對待開發者的分裂態度。

一方面,MFC 已經完全過時了。缺乏高級內存管理策略。陳舊而且令人迷惑的 message_map 機制(以及更廣泛地,大量使用宏的機制)。多年不更新的基礎文檔。

另一方面,MFC 又無法過時。只有 MFC 能和 Windows 大量繁雜的 API 進行完全的交互:GDI, GDI+, DirectDraw, OpenGL 等等。


簡而言之,過時了

一個事實是:微軟已經很少對MFC做比較大的更新了

每次新的Visual Studio版本發布,無非就是增加幾個類

你可以說這是因為MFC發展成熟了,也可以說是已經老態龍鍾了

再者,在MFC所擅長的界面開發領域,已經湧現了很多優秀的替代者,諸如C#的WinForm,WPF等等,現在已經不是10幾年前,那時候只有他,MFC的黃金時代已經一去不復返了


框架及其思想值得一學。任何技術都會過時,為了趕技術而去學,學一輩子學到都是皮毛,深入一個研究,一通全通。所以,無所謂過時與不過時。想學就學了,不想學就不學了。


我在接觸MFC的時候,注意了兩個方面:MFC的框架本身和C++。


的確淡出了人們的視野!學MFC,你會有很多的不懂!學不會是主要原因!界面應該是畫出來的,WPF之類的走的是正路。用專門的代碼去畫界面,聲明界面!這樣更符合人類的認知,比較簡單。學MFC好多年,可惜,從未學會!


過時了,學習成本高,效果不理想,以前唯一拿得出手的性能也不在是優勢了。


一堆自己熟悉的常用類用熟了的話, MFC效率也未必有說的那麼低。

優點也有一些的,性能啊、安裝環境依賴啊、通用性啊之類的都算優點。


突然被分配做MFC,我就不吐槽了-----

開發真的真的很低效,實現稍微美麗一點的界面真的真的很麻煩----

但是,精通到了極致,可能就很簡單了吧-----

呵呵=-=求


MFC未必過時,但是目前不算主流倒是真的。

相比於.Net的開發效率,MFC在畫界面上的確捉襟見肘,不然也不會有那麼多如DirectUI之類的東東出來。

我的理解,如果現在從零開發Windows桌面下的項目,沒必要選MFC了。


本來我想問這個問題的。我感覺MFC過於底層,開發效率低,不適合在項目中大量使用。不知道說的對不對


求更多大神解答這個問題啊!~學習MFC中~~但是又怕技術過時~~很多人都說學好一門不怕學另外的~~我也是想a~可是要畢業了~沒那麼多時間啊


過時了,後來出了.net框架的winform和wpf。微軟技術經常在更新。


看到公司部分項目存在MFC開發的,就去學習,但是發現確實很多功能在.net中能很快解決掉的,MFC還要敲代碼。就準備放棄學習了


我也在學但是很多人都告訴我過時了,而且有一個公司的老總跟我說別學c++了,用處不大,求解 啊


過時到不會,因為最終無論如何最終調用的總是windows的api

但是就桌面應用開發來說,開發效率(不是運行效率)確實不如c#這是事實


推薦閱讀:

如何用c++寫一個簡單的計算器程序?
C++在acm里的優勢相比其他語言有多大?
如何入門CDQ分治?
利用C++ template,請問我該如何設計這個向量類(Vector)?
如何寫個程序找出現有C++工程里的所有函數?

TAG:MicrosoftWindows | 圖形用戶界面 | C | MFC |