如何看懂 MFC 工程,或者 C++ 工程?
03-13
之前一直做LinuxC開發,最近上手一個MFC項目,CS架構的,欲移植到Linux,完全無從下手,過了一遍VC開發,和早已遺忘的C++,還是感覺沒頭緒,問怎樣有效的看一個MFC工程或者C++工程?
MFC遷移linux其實是挺麻煩的,但也不至於說無從下手,我們曾經把C#的一個五六萬行左右的項目遷移到linux Qt上去,五個人幹了三個月。。。MFC遷過去畢竟還是C++,差別有,但沒有特別大。
我們老大經常說的一句話是,源碼本身就是最好的注釋,源碼都給你了,有什麼看不懂的。
MFC比較煩的一點是如果不是高手手底下出的活,很容易把業務邏輯和界面攙和在一起,幾乎所有的業務都被分散到各個對話框底下,低內聚高耦合,遷移起來蛋疼菊花緊。但即使是這樣,耐下心來看,也是很容易看出端倪的。扯一些理論,再說一些小技巧吧。首先,你必須熟悉程序本身,就是會用,搞明白每個按鈕按下去會發生什麼事,每個業務邏輯的觸發點在哪。
搞清楚了功能,去linux下仿造界面,按鈕什麼的照原樣擺出來。再然後每個按鈕按下去的時候發生了什麼事,去MFC源碼裡邊找,遇到一個業務類,就整個拷過去稍微改一下能通過編譯就差不多了,遇到界面處理就轉換成linux的處理。整個過程有點像原型模式,只是更簡單,因為不用你再去考慮每個按鈕的響應了,原型都已經設計好了。再強調一下,耐心,有志者事竟成,只要肯做,就能做到。MFC的話,就從界面看起吧,把資源打開,雙擊按鈕看看響應的函數。
推薦閱讀:
※老師教的MFC,可是win10不能安裝vc++6.0怎麼辦?
※為什麼微軟不大力支持C ,而重點支持C#,難道今後windows平台開發就告別以前的MFC那一套了?
※對於一個初學者,MFC和Qt哪個好下手?
※MFC為什麼難用,框架的敗筆是?
※Spy++是如何獲取發往窗口的消息的?