win32控制檯程序


http://blog.csdn.net/houmin0036/article/details/7702236


win32控制檯項目指在32位Windows命令提示符(即所謂的dos)環境下運行的應用程序...
win32項目指運行於32位Windows操作系統中的應用程序...包括win32控制檯項目...


1、Win32項目包括:Win32 應用程序、控制檯應用程序、DLL 或其他靜態庫的項目;


2、控制檯應用程序通常被設計爲沒有圖形用戶界面,並編譯成獨立的可執行文件。控制檯應用程序通常從命令行運行,同時在命令提示和運行的應用程序之間交換輸入和輸出信息。

win32應用程序是有窗體的(當然也可以沒有),有Windows消息循環機制的。 而win32控制檯應用程序只是在控制檯下運行的程序,類似以前dos的程序。

可以在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的

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/0ebc38d758af


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章