2010-06-30 260 views
0

在Visual Studio 2005中開發Win32應用程序(非控制檯應用程序)時,是否有任何方法可以像從控制檯那樣獲得相同類型的輸出?Win32應用程序控制臺輸出?

例如,假設我想查看日誌語句(例如我將在控制檯應用程序中使用cout)來跟蹤我的程序在代碼中執行的路徑。

我首先想到的是,這可以通過輸出選項卡中選擇從它的「顯示輸出:」東西做下拉菜單,在調試的時候,但我不知道是什麼API,我需要做到這一點...

alt text

例如說,我在我的windows應用程序下面,想知道什麼時候下面的函數進入和退出將結果寫到上面的Visual Studio的窗口。

void someFunction(void) 
{ 
    Win32APIConsoleLog("BEGIN: someFunction()"); 
    // ... 
    Win32APIConsoleLog("END: someFunction()"); 
} 

這可能嗎?如果是這樣,我需要包含哪些庫,以及我需要寫出哪些函數調用來寫入控制檯窗口?

+0

只是爲了澄清:您想在Visual Studio中寫入控制檯,而不是命令提示符(具有黑色背景的單獨控制檯窗口),是否正確? – 2010-06-30 13:21:12

回答

4

OutputDebugString

我假設你想寫入調試控制檯,因爲這是你的屏幕截圖顯示的內容。 OutputDebugString在沒有連接調試器的情況下是一個nop,但它允許您將任何想要的內容記錄到調試器的輸出中。

+0

OutputDebugString是一個普通的API,它不是一個沒有調試器的NOP,任何用戶模式的應用程序都可以看到輸出(Sysinternals DebugView等) – Anders 2010-06-30 13:45:32

+0

@Anders,是的,但你必須特別要求。它和控制檯的輸出不一樣,儘管讀者並不需要真正的調試器。 – 2010-06-30 14:00:50

+0

@Anders什麼是NOP? – leeand00 2010-06-30 14:33:06

相關問題