Win32控制檯應用程序、Win32項目、MFC應用程序的區別與聯繫

轉載自:https://blog.csdn.net/zhao1999qian/article/details/57084143

1、  區別

(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框架提供,不需要自己寫。

發佈了77 篇原創文章 · 獲贊 80 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章