1. 程式人生 > 實用技巧 >Win32控制檯、Win32專案、MFC專案、CLR控制檯、CLR空專案、空專案區別

Win32控制檯、Win32專案、MFC專案、CLR控制檯、CLR空專案、空專案區別

轉載:https://blog.csdn.net/zfmss/article/details/79244696

1.Win32控制檯

初始程式碼模版以main為程式入口,預設情況下,只連結C++執行時庫和一些核心的win32庫,連結器subsystem引數為console型別,所以編譯出來的程式會有黑色的控制檯視窗作為呈現標準輸入(stdin)和標準輸出(stdout)。

2.Win32專案

初始程式碼模版實現一個簡單的windows視窗,以WinMain作為程式入口,引用了win32Api標頭檔案和庫,連結器subsystem引數為windows,編譯出來會有一個簡單的視窗。

3.MFC專案

本質上是個win32工程,只是預設幫你引用了mfc框架的標頭檔案和庫,並且程式入口由mfc框架提供,不需要自己寫。

4.如何選擇

windows提供win32 api以供程式設計師完成各種操作,所以控制檯,win32,mfc都可直接呼叫win32 api。

但直接使用win32 api,用程式碼完成諸如建立視窗,顯示視窗等操作太過繁雜,於是我們把這些程式碼結合抽取取來,變成OOP中的類,也就是微軟基礎類庫(MFC)。

採用控制檯還是win32 MFC,取決於是否需要同用戶進行互動,以及互動的頻率是高還是低。字處理軟體需要實時檢視編輯成果,所以採用了視窗;而一個木馬程式,採用了視窗就會暴露自己,所以採用控制檯。

需要與使用者進行大量互動或者要滿足“所見即所得”,採取wn32 mfc;無需互動或者互動極少,採用控制檯。

只強調實用與開發效率,用MFC;強呼叫戶體驗與軟體細節,使用WIN32。MFC可以實現的,WIN32都可以實現。反之不可。

5.CLR控制檯

CLR控制檯指的是使用C++語言開發基於.NET FRAMEWORK的控制檯程式。

也就是說,C++可以直接呼叫.NET的功能強大的類庫,處理更多的事情,實現更多的功能,可以精簡幾乎50%以上的程式碼。

WIN32控制檯程式,是指用C++語言開發基於控制檯的程式,也就是類似於CMD程式。

WIN32窗體應用程式,是指用C++語言開發基於SDK的窗體程式,你看到的QQ,就是一個窗體程式。

1 ATL專案,使用活動模板庫的專案。用來做COM開發。
2 CLR專案,與ATL類似。不過CLR是一個體系。用這個創建出來的工程,在所有支援CLR的編譯器內均可以無障礙移植。
3 MFC專案,可以使用MFC的類庫。MFC是微軟提供的用來windows開發的一個工具包。
4 Win32專案,windows開發專案。可以使用windows相關API。與MFC不同的是,這裡都是直接使用windowsAPI。
5 除此以外,最常用的是命令列專案,即console。初學者使用這一個就足夠了。