1. 程式人生 > >mf,win32,控制檯

mf,win32,控制檯

區別:
(1)Win32控制檯程式,沒有介面,只有命令符。生成的“.exe”檔案直接執行操作即可。
(2)Win32專案,有介面。但是介面裡面的控制元件,基本上要自己去實現。
(3)MFC應用程式,也有介面,飯介面裡的控制元件不需要自己去實現了,常用的控制元件都已經在MFC庫內寫好,直接拖動即可。
(4)控制檯與Win32MFC的互動方式不同,前者採用的是CML(命令模式),後者是GUI(使用者介面)
5)Win32專案的介面比較符合UI介面設計;而MFC應用程式的介面基本都是一樣的,因為它們都是用同一套控制元件模板。
(6)Win32控制檯程式:初始程式碼模版以main為程式入口,預設情況下,只連結C++執行時庫和一些核心的win32庫,連結器subsystem引數為console型別,所以編譯出來的程式會有黑色的控制檯視窗作為呈現標準輸入(stdin)和標準輸出(stdout)。
Win32專案:初始程式碼模版實現一個簡單的windows視窗,以WinMain作為程式入口,引用了win32Api標頭檔案和庫,連結器subsystem引數為windows,所以生成的程式不帶黑色的控制檯,直接使用標準輸入和標準輸出,看不到效果。
MFC應用程式:本質上是個win32工程,只是預設幫你引用了mfc框架的標頭檔案和庫,並且程式入口由mfc框架提供,不需要自己寫。

2、 如何選擇?
採用控制檯還是win32 MFC,取決於是否需要與使用者進行互動,以及互動的頻率高低。有些軟體需要實時檢視編輯結果,所以需要視窗;有的程式,比如木馬程式,為避免暴露自己不採用視窗。
(1)需要與使用者進行大量互動或者要滿足“所見即所得”,採取wn32 mfc;無需互動或者互動極少,採用控制檯。
(2)只強調實用與開發效率,用MFC;強呼叫戶體驗與軟體細節,使用WIN32。MFC可以實現的,WIN32都可以實現。反之不可。

3、 聯絡?
windows提供win32 api以供程式設計師完成各種操作,所以控制檯,win32,mfc都可直接呼叫win32 api。但直接使用win32 api,用程式碼完成諸如建立視窗,顯示視窗等操作太過繁雜,於是我們把這些程式碼結合抽取取來,變成OOP中的類,也就是微軟基礎類庫(MFC)

4(1)Win32控制檯程式:初始程式碼模版以main為程式入口,預設情況下,只連結C++執行時庫和一些核心的win32庫,連結器subsystem引數為console型別,所以編譯出來的程式會有黑色的控制檯視窗作為呈現標準輸入(stdin)和標準輸出(stdout)。
(2)Win32專案:初始程式碼模版實現一個簡單的windows視窗,以WinMain作為程式入口,引用了win32Api標頭檔案和庫,連結器subsystem引數為windows,所以生成的程式不帶黑色的控制檯,直接使用標準輸入和標準輸出,看不到效果。
(3)MFC應用程式:本質上是個win32工程,只是預設幫你引用了mfc框架的標頭檔案和庫,並且程式入口由mfc框架提供,不需要自己寫。