mfc程式中,如果想要輸出除錯資訊,我們一般都是trace或者使用log檔案,都不是很方便,第乙個需要我們在除錯狀態下,第二個也要配置麻煩而且不直觀。而使用console來顯示除錯資訊應該是更好的選擇。下面介紹幾種在mfc程式中,使用控制台來輸出除錯資訊。
1. 我們可以自己建立乙個命令列視窗,在主程式的初始化的時候呼叫allocconsole()函式。相應的退出的時候呼叫freeconsole()
此種方式下,輸出函式需要使用_cprintf或者writeconsole(getstdhandle(std_output_handle)...),其他的如cout,printf都不能輸出到這裡。當然,你可以自己封裝一套除錯函式。
2. 修改工程的配置資訊,一般控制程式型別的是通過這兩/subsystem:windows來配置的,這個可以在工程屬性/linker/system/subsystem這裡看到,我們可以通過修改程式為console型別來使得程式顯示命令列,但直接修改這個屬性會提示鏈結錯誤,原因是不同型別的程式有不同的程式入口。這裡使用簡單的方式,直接在stdafx.h中新增一句
#ifdef _debug
#pragma
comment( linker, "/subsystem:console /entry:wwinmaincrtstartup" )
//我用vs2005
#endif
我們重新定義了系統型別和入口函式,這裡面可以根據自己的需要任意組合。你可以參考你工程目前的屬性資訊,工程屬性/linker/command line,如下參考
#pragma comment( linker, "/subsystem:windows /entry:winmaincrtstartup" )
#pragma comment( linker, "/subsystem:windows /entry:maincrtstartup" )
#pragma comment( linker, "/subsystem:console /entry:maincrtstartup" )
#pragma comment( linker, "/subsystem:console /entry:winmaincrtstartup" )
ps如何改變win32 console 程式顯示顏色
**handle hcon=getstdhandle(std_output_handle);
/*std_input_handle 標準輸入的控制代碼 std_output_handle 標準輸出的控制代碼 std_error_handle 標準錯誤的控制代碼 */
setconsoletextattribute(hcon,forecolor|backgroundcolor);
/*其文字與背景顏色可以是 foreground_blue, foreground_green, foreground_red, foreground_intensity, background_blue, background_green, background_red, and background_intensity*/
最好最簡單的辦法:
在任何建構函式中加入如下**
if(::allocconsole())
相應的退出的時候呼叫freeconsole()
在控制台程式中隱藏控制台視窗
因為此種方法是通過設定編譯器的鏈結開關來實現,所以讓我們來看一下編譯 器的鏈結開關選項 也就是linker選項 首先我們來看一下linker的 subsystem 選項 這個鏈結選項告訴作業系統如何執行可執行檔案 console win32 字元模式應用程式,此種型別的應用程式在執行的時候會產生乙個...
在控制台程式中隱藏控制台視窗
因為此種方法是通過設定編譯器的鏈結開關來實現,所以讓我們來看一下編譯 器的鏈結開關選項 也就是linker選項 首先我們來看一下linker的 subsystem 選項 這個鏈結選項告訴作業系統如何執行可執行檔案 console win32 字元模式應用程式,此種型別的應用程式在執行的時候會產生乙個...
在控制台程式中隱藏控制台視窗
因為此種方法是通過設定編譯器的鏈結開關來實現,所以讓我們來看一下編譯 器的鏈結開關選項 也就是linker選項 首先我們來看一下linker的 subsystem 選項 這個鏈結選項告訴作業系統如何執行可執行檔案 console win32 字元模式應用程式,此種型別的應用程式在執行的時候會產生乙個...