日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在MFC程序中增加控制台窗口

發布時間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在MFC程序中增加控制台窗口 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MFC程序中,如果想要輸出調試信息,我們一般都是TRACE或者使用LOG文件,都不是很方便,第一個需要我們在調試狀態下,第二個也要配置麻煩而且不直觀。而使用Console來顯示調試信息應該是更好的選擇。下面介紹幾種在MFC程序中,使用控制臺來輸出調試信息。

1. 我們可以自己創建一個命令行窗口,在主程序的初始化的時候調用AllocConsole()函數。相應的退出的時候調用FreeConsole()

?

1 BOOL CMFCTestApp::InitInstance()
2 {
3 ...
4 #ifdef _DEBUG
5 AllocConsole();
6 ?#endif
7 ...
8 CWinApp::InitInstance();
9 }

? 此種方式下,輸出函數需要使用_cprintf或者WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE)...),其他的如cout,printf都不能輸出到這里。當然,你可以自己封裝一套調試函數。

?

2. 修改工程的配置信息,一般控制程序類型的是通過這兩/SUBSYSTEM:WINDOWS來配置的,這個可以在工程屬性/Linker/System/Subsystem這里看到,我們可以通過修改程序為console類型來使得程序顯示命令行,但直接修改這個屬性會提示鏈接錯誤,原因是不同類型的程序有不同的程序入口。這里使用簡單的方式,直接在stdafx.h中添加一句

?

1 #ifdef _DEBUG
2 #pragma comment( linker, "/subsystem:console /entry:wWinMainCRTStartup" )//我用VS2005
3 #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*/

總結

以上是生活随笔為你收集整理的在MFC程序中增加控制台窗口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。