原文地址:
http://www.vckbase.com/bbs/prime/viewprime.asp?id=581 眾所周知,控制臺(tái)應(yīng)用程序一般都會(huì)顯示一個(gè)控制臺(tái)窗口(虛擬DOS窗口),但很多時(shí)候控制臺(tái)程序的執(zhí)行邏輯根本不需要與用戶進(jìn)行交互,所以顯示這個(gè)難看的窗口純屬多余,那么如何將它屏蔽掉呢?下面我向大家介紹一種方法。
操作系統(tǒng)裝載應(yīng)用程序后,做完初始化工作就轉(zhuǎn)到程序的入口點(diǎn)執(zhí)行。程序的默認(rèn)入口點(diǎn)實(shí)際上是由連接程序設(shè)置的,不同的連接器選擇的入口函數(shù)也不盡相同。在VC下,連接器對(duì)控制臺(tái)程序設(shè)置的入口函數(shù)是 mainCRTStartup,mainCRTStartup 再調(diào)用你自己編寫的 main 函數(shù);對(duì)圖形用戶界面(GUI)程序設(shè)置的入口函數(shù)是 WinMainCRTStartup,WinMainCRTStartup 調(diào)用你自己寫的 WinMain 函數(shù)。
具體設(shè)置哪個(gè)入口點(diǎn)是由連接器的“/subsystem:”選項(xiàng)參數(shù)確定的,它告訴操作系統(tǒng)如何運(yùn)行編譯生成的.EXE文件。可以指定四種方式:“CONSOLE|WINDOWS|NATIVE|POSIX”如果這個(gè)選項(xiàng)參數(shù)的值“WINDOWS”,則表示該應(yīng)用程序運(yùn)行時(shí)不需要控制臺(tái),有關(guān)連接器參數(shù)選項(xiàng)的詳細(xì)說明請(qǐng)參考 MSDN 庫。
下面我們將通過預(yù)編譯指令來對(duì)編譯器和連接器進(jìn)行設(shè)置,從而達(dá)到我們的目的:例子代碼運(yùn)行后播放Windows系統(tǒng)啟動(dòng)聲音三次,然后退出,運(yùn)行后不會(huì)顯示控制臺(tái)窗口。
很多人都說這個(gè)沒有什么用,但在做OPENGL的時(shí)候,調(diào)試的時(shí)候可以在調(diào)試的時(shí)候讓信息從控制臺(tái)輸出,而調(diào)試好了以后就可以不用控制臺(tái)了!
posted on 2009-03-20 14:55
漂漂 閱讀(312)
評(píng)論(0) 編輯 收藏 引用