nfc是什么功能 很多人說(shuō)C 的MFC已經(jīng)過(guò)時(shí)了,那新入門的人到底應(yīng)該學(xué)什么?
很多人說(shuō)C 的MFC已經(jīng)過(guò)時(shí)了,那新入門的人到底應(yīng)該學(xué)什么?。MFC在軍工和自動(dòng)化的許多領(lǐng)域隨處可見(jiàn)。即使我們的大多數(shù)產(chǎn)品都是由MFC開(kāi)發(fā)的,盡管有些產(chǎn)品使用QT重構(gòu)。您選擇MFC。我們先來(lái)看看效
很多人說(shuō)C 的MFC已經(jīng)過(guò)時(shí)了,那新入門的人到底應(yīng)該學(xué)什么?
。MFC在軍工和自動(dòng)化的許多領(lǐng)域隨處可見(jiàn)。即使我們的大多數(shù)產(chǎn)品都是由MFC開(kāi)發(fā)的,盡管有些產(chǎn)品使用QT重構(gòu)。
您選擇MFC。我們先來(lái)看看效果圖。以下是QT(PS:author-CSDN-one-to-two-threeli)的一個(gè)新特性QSS開(kāi)發(fā)的一組界面蒙皮變化效果圖
!作為C接口開(kāi)發(fā)的首選接口庫(kù),它具有優(yōu)雅的API設(shè)計(jì)、跨平臺(tái)支持、完整的官方文檔以及持續(xù)的維護(hù)和更新。與MFC不同的是,即使是它的教父微軟也放棄了它。最后,QT對(duì)新手非常友好。
作為一名學(xué)生,不必?fù)?dān)心是選擇MFC還是QT,或者像duilib這樣的第三方接口庫(kù)。實(shí)際上,花更多的時(shí)間學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、算法、網(wǎng)絡(luò)、內(nèi)存管理、多線程、動(dòng)態(tài)庫(kù)和消息機(jī)制更好嗎?
接口,C不是真正的強(qiáng)項(xiàng)。C和電子不夠香嗎?
現(xiàn)在MFC還流行嗎?
看了這個(gè)問(wèn)題之后,幾乎100%的受訪者表示MFC已經(jīng)過(guò)時(shí)了。我對(duì)如此高的可能性感到驚訝。
總之,MFC并不流行,但它并沒(méi)有過(guò)時(shí)。
眾所周知,C是一種經(jīng)典而高效的編程語(yǔ)言。MFC作為一種Windows編程框架,曾經(jīng)有過(guò)大量的支持者。但是微軟沒(méi)有在MFC上做更多的創(chuàng)新,例如,沒(méi)有像第三方公司的控件那樣在界面上發(fā)布新的工具。微軟已經(jīng)將精力投入到C#,甚至開(kāi)發(fā)了VisualC.NET,一個(gè)幫助MFC程序員過(guò)渡到C#的工具。
微軟的初衷。Net是為了與Java競(jìng)爭(zhēng),在跨平臺(tái)應(yīng)用中平衡Java。后來(lái),隨著互聯(lián)網(wǎng)的迅速發(fā)展,桌面應(yīng)用成為邊緣化少數(shù)群體的需求。大量編碼人員加入互聯(lián)網(wǎng)公司,C和C被忽視,用戶比例不斷下降。
今天的桌面開(kāi)發(fā),除了C是C#,其他都不是主流(我可能不知道,也有大量的國(guó)外程序員沒(méi)有用過(guò)VS)。C開(kāi)發(fā)了C11/C14/C17,這被大多數(shù)數(shù)字農(nóng)場(chǎng)主所忽視。第三方控件也大大彌補(bǔ)了MFC接口的不足。但是C和MFC對(duì)初學(xué)者的要求比C更高,這是毋庸置疑的。在當(dāng)今的效率時(shí)代,年輕人無(wú)疑會(huì)選擇C#(更多的年輕人會(huì)涌向互聯(lián)網(wǎng),因?yàn)檫@個(gè)行業(yè)支付的費(fèi)用更高)。
然而,C?的隨機(jī)性將嚴(yán)重?fù)p害程序員的良好素質(zhì)。一個(gè)沒(méi)有紀(jì)律的程序員會(huì)編寫(xiě)大量的私生子代碼,這會(huì)讓后來(lái)的程序員或C程序員哭哭啼啼,直接崩潰。
我手頭有一個(gè)項(xiàng)目。有兩三個(gè)。幾位“前輩”寫(xiě)的6000多行CS文件。變量滿山都是,數(shù)據(jù)處理水平不分,接口慢,不懂行業(yè)應(yīng)用。充其量只是實(shí)驗(yàn)室的半成品,實(shí)用價(jià)值不大。
C#的方便之處在于它可以更快地引用第三方控件,而無(wú)需任何約束。因此,懶惰的程序員會(huì)過(guò)分依賴各種控件,迫使不適當(dāng)?shù)目丶?yīng)用于復(fù)雜的工業(yè)領(lǐng)域。這對(duì)于C/MFC程序員來(lái)說(shuō)是不可想象的。
我的意思是,互聯(lián)網(wǎng)行業(yè)的程序員不適合討論這個(gè)問(wèn)題。桌面應(yīng)用程序、MFC或C程序員并沒(méi)有過(guò)時(shí)。不同的是,一個(gè)C程序員可以在三到兩個(gè)月內(nèi)開(kāi)始,但C程序員需要三到五年的時(shí)間來(lái)開(kāi)發(fā)自己。
無(wú)論做什么,都要有很好的計(jì)劃,嚴(yán)格的自律,不能把代碼拼湊起來(lái)。如果你急功近利,你只能做一堆垃圾。
請(qǐng)問(wèn)目前做windows桌面應(yīng)用程序,MFC、QT、C#哪個(gè)更好?
做Windows桌面應(yīng)用程序,當(dāng)然是C#。
C#是下一代的主要語(yǔ)言。Net框架。它與Windows系統(tǒng)的集成度很高。Win7、win8和win10都有自己的版本。Net框架,所以它們根本不需要任何依賴性。C#已更新至8.0版。使用VS開(kāi)發(fā)桌面程序是完美的選擇。WinForm和WPF都是十到二十年來(lái)非常成熟的桌面程序框架。你可以通過(guò)拖放控件開(kāi)發(fā)桌面程序,速度很快。WPF具有高度的定制性。它可以設(shè)計(jì)一個(gè)漂亮的用戶界面而不丟失web界面,它還具有一個(gè)支持的平淡的設(shè)計(jì)器來(lái)輔助用戶界面。
目前,WinForm和WPF桌面框架已經(jīng)擴(kuò)展。NETCORE是一個(gè)新的平臺(tái)框架,所以我認(rèn)為C是桌面開(kāi)發(fā)的首選。
關(guān)于以上我的觀點(diǎn),您也可以討論一下您的想法。
MFC過(guò)時(shí)了嗎?
MFC用C語(yǔ)法封裝Windows API。掌握MFC的關(guān)鍵不是使用它的類庫(kù),而是學(xué)習(xí)它的體系結(jié)構(gòu)和設(shè)計(jì)概念。掌握MFC意味著對(duì)C語(yǔ)法有一定的了解,對(duì)windows的工作機(jī)制有進(jìn)一步的了解。從市場(chǎng)的角度來(lái)看,MFC擁有上百萬(wàn)個(gè)桌面應(yīng)用程序上的軟件項(xiàng)目,盡管有Java和Java。Net越來(lái)越成熟,MFC是不可替代的。這不僅是歷史遺留下來(lái)的任務(wù),也是MFC成熟的架構(gòu)。如果你有Win32的基礎(chǔ),也就是熟悉Windows API和Windows消息驅(qū)動(dòng)的模型,MFC就不那么難了。你可以學(xué)習(xí),但是MFC開(kāi)發(fā)效率不是很高。如果你不熟悉MFC,學(xué)習(xí)MFC是非常有益的。您可以了解windows程序的內(nèi)部運(yùn)行機(jī)制
謝謝。
讓我們從我自己的觀點(diǎn)開(kāi)始。MFC真的過(guò)時(shí)了,而且已經(jīng)過(guò)時(shí)了。它已經(jīng)被我父親拋棄了。如果您有不同意見(jiàn),請(qǐng)留言討論。
如果您還是一名學(xué)生,只對(duì)Windows平臺(tái)上的UI開(kāi)發(fā)感興趣,建議您直接學(xué)習(xí)QT。它易于使用和跨平臺(tái)。其設(shè)計(jì)思想采用了大量的設(shè)計(jì)模式,值得借鑒。另外,QT的最新版本支持QML,使我們能夠用JavaScript、QSS等web程序開(kāi)發(fā)PC端程序,大大提高了效率。下面是一個(gè)使用QT開(kāi)發(fā)的接口示例。
如果您已經(jīng)參與了工作,并且不幸地被指派維護(hù)一個(gè)仍在使用MFC的舊項(xiàng)目,那么您別無(wú)選擇,只能為了生活而繼續(xù)MFC。當(dāng)然,除了工作,用自己的MFC開(kāi)發(fā)基礎(chǔ),你可以學(xué)習(xí)QT、DuiLB等庫(kù),相信他們很快就會(huì)開(kāi)始。Duilib認(rèn)為這是一個(gè)很好的接口庫(kù),但不利于推廣。目前,沒(méi)有人正式維護(hù)它,但是一些個(gè)人或公司自己維護(hù)一個(gè)代碼庫(kù)。微信也使用duilib庫(kù)。下面是一個(gè)由個(gè)人使用duilib開(kāi)發(fā)的迅雷接口。
你不能也做出一個(gè)非常華麗的效果嗎?
它也很受歡迎。這個(gè)東西宣稱用HTML、CSS、JavaScript前端三劍客來(lái)對(duì)付windows、Linux、MacOS三大主流系統(tǒng)平臺(tái)。這對(duì)程序員很有誘惑力。目前,著名的商業(yè)軟件可以看到atom和vscode。據(jù)說(shuō)阿里巴巴的丁丁客戶端也是用javescript開(kāi)發(fā)的,可以進(jìn)一步驗(yàn)證。