剛接觸Windows那一套,大多數概念都還沒創建起來,整理了一下網上對「Win32控制檯程序」的理解,謝謝各位網友了。html
win32控制檯項目指在32位Windows命令提示符(即所謂的dos)環境下運行的應用程序...
win32項目指運行於32位Windows操做系統中的應用程序...包括win32控制檯項目...windows
一、Win32項目包括:Win32 應用程序、控制檯應用程序、DLL 或其餘靜態庫的項目;
二、控制檯應用程序一般被設計爲沒有圖形用戶界面,並編譯成獨立的可執行文件。控制檯應用程序一般從命令行運行,同時在命令提示和運行的應用程序之間交換輸入和輸出信息。多線程
win32應用程序是有窗體的(固然也能夠沒有),有Windows消息循環機制的。 而win32控制檯應用程序只是在控制檯下運行的程序,相似之前dos的程序。app
能夠在VC裏建一個win32 application和一個win32 console application,兩個dsp工程文件對比一下,你會發現應用程序裏的subsystem:windows,控制檯程序裏的subsystem:console。 subsystem這個連接選項告訴Windows如何運行可執行文件。 subsystem是console的話,Windows在進入可執行文件的代碼前,就會產生一個控制檯窗口。 subsystem是windows的話,操做系統就不產生console窗口,該應用程序的窗口由用戶本身建立。框架
能夠調用GUI裏面的API的,
若是你看了一些VC的啓動代碼(就是main,WinMain,DllMain以前的代碼)就知道
控制檯程序在啓動代碼中多了取得標準輸入輸出句柄以及將程序參數轉化成C語言格式
的參數形式函數
控制檯程序就是經過命令行的方式進行輸入和輸出的
Win32程序是它的上層概念,Win32程序能夠是Console的也能夠是GUI的spa
Win32 程序:利用Windows編譯器、鏈接器作出來的程序,都是所謂的Win32程序。
Console程序:也是Win32程序,它是dos-like程序,能夠調用C Runtime函數和不牽涉GUI的Win32API函數。Console視窗將是其標準輸入輸出設備(cin、cout)。
Dos程序:過去在dos環境開發的程序。它也是以main()爲函數進入點,能夠調用C Runtime函數,可是不具有調用Win32API函數的能力。 操作系統
Windows支持的兩種應用程序: (1) 基於圖形用戶界面的應用程序,即GUI; (2) 基於控制檯用戶界面的應用程序,即CUI. Windows應用程序必須有一個在應用程序啓動運行的調用進入點函數: 應用程序類型 進入點 須要ANSI字符和字符串的GUI應用程序 WinMain 須要ANSI字符和字符串的CUI應用程序 main 須要Unicode字符和字符串的GUI應用程序 wWinMain 須要Unicode字符和字符串的CUI應用程序 wmain命令行
前面是DOS環境的,是單任務的 後面是WINDOWS的,支持多任務,多線程~線程
win32控制檯程序是用來編寫DOS程序的,在DOS下生成WINDOWS窗口的編寫是至關麻煩的。要用DOS下c語言的繪圖函數把窗口畫出來。 但VC已經提供了窗口的框架和顯示,咱們如今不必再去作這些工做了。 程序入口不能決定任何事,它就是一個入口,程序必須有它,程序完成什麼樣的功能由程序的代碼來肯定。 窗口就是一個圖形,是由程序畫出來的,代碼封裝在MFC底層。咱們不須要具體瞭解,只須要知道原理就能夠了。
源地址:http://hi.baidu.com/%D6%D0%B9%FA%C9%BD%B6%AB%C8%CB2009/blog/item/0ebc38d758afa126960a160e.html