mfc是什么意思 神奇的贊助商

不過呢 , 也有一個讓人熱血沸騰的好消息:小編終于抱到了一個神奇贊助商的大腿,終于不用再糾結1萬閱讀是1塊錢還是2塊錢的小事情了 。
接下來還是說水深火熱的事情吧,小編為了解決一個粉絲朋友的MFC編程上的問題,可謂是絞盡了腦汁又挖空了心思,下面就來看看這個坑爹的MFC 。

mfc是什么意思 神奇的贊助商


什么是MFC

微軟基礎類庫(英語:Microsoft Foundation Classes,簡稱MFC)是微軟公司提供的一個類庫(class libraries),以C++類的形式封裝了Windows API,并且包含一個應用程序框架,以減少應用程序開發人員的工作量 。其中包含大量Windows句柄封裝類和很多Windows的內建控件和組件的封裝類 。

mfc是什么意思 神奇的贊助商


CString

區別于std::string , MFC搞了一個CString出來 。這玩意兒太小眾了,當您在網上搜一搜c++代碼片斷準備copy的時候,會發現全都是std::string的代碼呀 , 根本沒人寫CString的版本 。
于是每次從網上copy了代碼,要先做一次CString到std::string的轉化;代碼結束的時候,還要再做一次std::string到CString的轉化 。

mfc是什么意思 神奇的贊助商


反人類的方法名

MFC里面的方法名實在是讓人嘆為觀止無力吐槽了 。比如有一個label控件(或者稱為static text),那么給它賦值的方法怎么著也應該從下面選一個吧,比如:setText, setData, setValue之類的,但是你猜MFC里面給label賦值的方法是啥? SetWindowTextW,對,后面還有一個莫名其妙沒頭沒腦的W 。
再比如,一個Modal類型的對話框,當用戶點擊了關閉按鈕時,應該會調用哪個方法? 憑直覺或者良心來說,都應該是onClose或者onDestroy吧? 可MFC里面調用的方法偏偏是OnCancel 。
最后再說一個更反人類的方法名,就發生在添加菜單Menu事件的時候 , 一個菜單項的默認事件處理函數名稱竟然是On32777(),您沒看錯,這是一個完全沒有任何語意的方法,要是不加注釋您根本不知道它會不會是一個處理郵編的方法 。

mfc是什么意思 神奇的贊助商


JSON

默認情況下,c++是沒有辦法理解json這種類型的數據的 。于是,小編在網上找到了一個叫做jsoncpp的庫 , 使用的時候發現它只支持stringstream,不支持char*,也不支持std::string... 于是先得把std::string里面保存的字符串放到std::istringstream里面,然后再 >> 到Json::Value里面,才能實現JSON字符串的解析 。這個作者設計接口的腦回路實在是讓人感覺不可捉摸高深莫測 。

mfc是什么意思 神奇的贊助商


粗糙的界面設計

您能相信么 , 在它的界面設計窗口里面,竟然不能直接修改控件上面的字體大??,更不要提颜色?。必須寫代碼才能實現這么一個常用且看起來無比簡單的問題,用慣了QT的小編當時真是佩服的五體投地心悅誠服 。

mfc是什么意思 神奇的贊助商


其它

在與WEB通信時,還有很多想對MFC吐槽的 , 就不展開了,先羅列在這里了 。
首先,WEB服務端一般是UTF-8的字符集 ,  MFC里面可以認為是GBK的,于是要反復地轉來轉去 , 轉來轉去,轉得人頭暈 。
其次,urlencode這么一個基礎的功能啊,竟然都不封裝一下 。
最后,發個http請求,要寫幾十行代碼,實在是讓人忍不住加入python的懷抱啊 。

mfc是什么意思 神奇的贊助商





mfc是什么意思 神奇的贊助商

【mfc是什么意思 神奇的贊助商】

相關經驗推薦