• 凤凰体彩官网

  • 凤凰体彩官网

  • 凤凰体彩官网

  • 凤凰体彩官网

凤凰体彩官网

作者︰wy  發布日期︰2020-02-20 15:51:00
  •   同樣(yang)都是qie)黃鸕 謀嘀樸鋂裕 wei)何MFC淪落到如(ru)此(ci)shuo)牡夭劍 zong)是被(bei)用來與其他的編程語言進行比較(jiao),但就在這種赤裸裸的比較(jiao)之下(xia)它的缺點簡直暴露無遺不可直視。小編我yi)諭縞峽吹膠芏嚳治鎏醯檬翟謔敲婷婢愕轎蘅商(shang)秈蕖p>  首(shou)先(xian)聲明,MFC本身(shen)缺陷重重,嗯,不要說(shuo)MFC了(liao),C++的mu)蚣jia)或者類庫,那(na)個不是缺陷重重,充滿爭議,眾口(kou)難調,即便(bian)是官方標準(zhun)庫stl,而且(qie)還是模(mo)板的mo) 彩侵畽啾?梗 熱(re)ru)allocator,比re)ru)string,iostream,比re)ru)algorithm里(li)面的find,find_if,copy,copy_if等非正交的算法函數,又比re)ru)……,好吧剩下(xia)來的問(wen)題就和(he)反射有關了(liao),反正stl極力回避動(dong)態類型信(xin)息(xi),又沒(mei)有first class的函數類型和(he)垃(la)圾回收,即便(bian)是大力搞,也出不來什(shi)麼chuang)篤婕ji),基本上用起來也就是這個德行了(liao)。只是想說(shuo),mfc的各(ge)種不足(zu),是有其自身(shen)的無奈,也很讓人同情,真的mo) te)別(bie)是,面對(dui)著這個幾(ji)十歲的c++框架(jia)老xian)耍 苡行xie)物傷同類。

      回顧(gu)MFC誕生的那(na)個時(shi)代,C++好像還沒(mei)有template,即使有,也不像如(ru)今裝備(bei)的各(ge)種zhi)釗朔 傅鈉孑夤δ塴?梢yi)說(shuo)的是,當(dang)時(shi)的c++,就是比 c with class 強一些(xie),有多態,對(dui)了(liao),還有多繼承,幸yi)說(shuo)氖牽FC堅持zhi)說(shuo)?壇校 幸 摶獾鞀乇芰liao)很多C++多繼承設(she)計上的很多本質(zhi)復雜性(xing)問(wen)題。與此(ci)同時(shi),靜態強類型面向對(dui)象的語言,似乎也就是C++只此(ci)一家了(liao),基本上,MFC扮演著先(xian)行者的角色。但是,後(hou)面的delphi為(wei)何就那(na)麼成功呢(ne),那(na)是qie)蛭wei)object pascal給對(dui)象類型tu)恿liao)很多元信(xin)息(xi)數據,而且(qie),還專門pan)wei)gui框架(jia)開發添加各(ge)種zhong)鋂岳┬zhan)。有了(liao)這些(xie)外掛之後(hou),做(zuo)出來的mu)蚣jia),情況自然就很好多,反射對(dui)于靜態類型語言gui框架(jia)的mu)   dui)是不可或缺之物。你看看,現在的面向對(dui)象語言,除了(liao)c++這個老頑固,那(na)個不是大把(ba)大把(ba)的反射元數據,即便(bian)是c++,也做(zuo)了(liao)妥zi)  懍liao)一個極簡版的type_info,簡到不能用的殘次wen)罰 媸遣恢zhi)所謂(wei)。好了(liao),老朽決定言歸正傳,長話短說(shuo)。

      MFC的設(she)計目(mu)標就是用C++里(li)面的一個子集封裝windows Api函數,以(yi)簡化windows應用程序開發的工作量。此(ci)外,MFC也不可能搞消息(xi)發送這種zhong)刖蔡 坷嘈陀鋂願ge)格(ge)不入的旁門左(zuo)道,當(dang)然,MFC真要強硬以(yi)消息(xi)發送的模(mo)型來封裝win32的api,也未(wei)嘗不可,只是感覺很太那(na)個,不如(ru)另起爐灶,直接用動(dong)態語言來做(zuo)框架(jia),好像object c那(na)樣(yang)。而最終(zhong),MFC也確實完成任務了(liao),就只是這個框架(jia)用起來,沒(mei)啥靈氣(qi),笨(ben)重,束手縛腳(jiao),麻煩,各(ge)種不方便(bian)。更難能可貴的是,MFC通過(guo)內(na)嵌du)啵 拱ba)COM,ActiveX這種大怪物整(zheng)合進來,只是付出一點點代價,仔(zi)細追究,也就是qie)壞愕鬮?he)感而已,效果如(ru)此(ci)顯著,也確實讓人贊嘆不已。君不見(jian)用MFC開發的成功的商(shang)業軟件不知(zhi)幾(ji)多,這可見(jian)MFC的成功有多大。並且(qie),即便(bian)是MFC如(ru)斯之呆(dai)板,也沒(mei)有阻(zu)止高人在其上各(ge)種打洞,配(pei)套(tao)產品有bcg control bar(vs2008的補(bu)丁後(hou),就開始(shi)集成在MFC里(li)面了(liao),其代碼爛(lan)得罄竹(zhu)難書),xtreme等第三方庫可以(yi)做(zuo)出來很炫效果的界面。不像java,說(shuo)你不行就真的不行,從根源上就杜絕了(liao)種種奇技淫巧,從一開始(shi)就不讓你做(zuo)文(wen)章

    mfc

      MFC在那(na)個年(nian)代獨(du)創(chuang)的幾(ji)大關鍵技術︰運行時(shi)類型、動(dong)態創(chuang)建、序列(lie)化、消息(xi)映射等,也算是腦洞chuang)罌 姆欠膊錚 shi)至(zhi)今時(shi)今日,還不是在各(ge)種框架(jia)設(she)計上發光發熱(re)。這些(xie)關鍵技術,基本上只靠虛(xu)函數和(he)宏,而且(qie)這個時(shi)候的宏,還沒(mei)有用到boost preprocessor那(na)樣(yang)的偽圖(tu)靈完備(bei)特(te)性(xing),能做(zuo)成這樣(yang),實在不容易,的確難能可貴,搞得筆者寫到這里(li)都有小小的感動(dong)。像是c++這種半殘language,沒(mei)有xing) 暮 嘈停 mei)有豐富(fu)動(dong)態類型信(xin)息(xi),沒(mei)有垃(la)圾回收。然後(hou)還沒(mei)有偽圖(tu)靈完備(bei)的預處(chu)理,沒(mei)有真圖(tu)靈完備(bei)的template,霸王硬上弓(gong)做(zuo)gui框架(jia),又要享受靜態強類型的好處(chu),一路推演,頂多就只能做(zuo)成MFC這個樣(yang)子,不能更好的了(liao)。qt是qie)蛭wei)加了(liao)動(dong)態類型信(xin)息(xi),所以(yi)情況有所改善,但是,也不見(jian)得就多厲害了(liao)。如(ru)果由筆者用mfc的當(dang)時(shi)的c++那(na)點破(po)面向對(dui)象特(te)性(xing)來做(zuo)gui框架(jia),多半會走上消息(xi)發送的邪路,否則,簡直難以(yi)下(xia)手做(zuo)出來MFC這樣(yang)的珠玉,因為(wei)實在太惡心(xin)太無趣了(liao)。

      隨著世界的進步時(shi)間的推移(yi),我認為(wei)淘汰一些(xie)不好的東(dong)西是值得贊賞(shang)的mo)  蠖dong)曾(zeng)經(jing)說(shuo)過(guo)“落後(hou)就要挨打”這句名言簡直是中國的精神(shen)食糧(liang),很多老一輩的人總(zong)是把(ba)這句話掛yi)詼擼 土 頤men)這一輩也吸取同樣(yang)的經(jing)驗。

凤凰体彩官网

About IT165 -廣告服務 -隱私(si)聲明 -版權申明 -免(mian)責條款 -網站地圖(tu) -網友投稿 -聯(lian)系方式(shi)
本站內(na)容來自于互聯(lian)網,僅(jin)供用于網絡技術學習,學習中請遵循相關法律法規
凤凰体彩官网 | 下一页