OutputDebugStringA 函式 (debugapi.h)
將字串傳送至偵錯工具以供顯示。
語法
void OutputDebugStringA(
[in, optional] LPCSTR lpOutputString
);
參數
[in, optional] lpOutputString
要顯示的 Null 終止字串。
傳回值
無
備註
重要
若要使用此函式,您必須在應用程式中包含 Windows.h 標頭, (不是 debugapi.h) 。
在過去,作業系統不會透過 OutputDebugStringW 傳回 Unicode 字串, (ASCII 字串,而是傳回) 。 若要強制 OutputDebugStringW 傳回 Unicode 字串,偵錯工具必須呼叫 WaitForDebugEventEx 函式,才能加入宣告新的行為。 如此一來,作業系統就知道偵錯工具支援 Unicode,並特別選擇接收 Unicode 字串。
如果應用程式沒有偵錯工具,且篩選遮罩允許它,則系統偵錯工具會顯示字串。 若要顯示字串,此函式會呼叫 DbgPrint 函式。 在 Windows Vista 之前,系統偵錯工具不會篩選內容。
如果應用程式沒有偵錯工具,而且系統偵錯工具沒有作用中, OutputDebugString 不會執行任何動作。
OutputDebugStringW 會根據目前的系統地區設定資訊轉換指定的字串,並將它傳遞給 OutputDebugStringA 以顯示。 因此,某些 Unicode 字元可能無法正確顯示。
應用程式應該傳送非常最少的偵錯輸出,並為使用者提供啟用或停用其使用的方式。 若要深入瞭解追蹤詳細資料,請參閱 事件追蹤 。
Visual Studio 已變更其處理這些字串在整個修訂歷程記錄中的顯示方式。 如需版本如何處理此專案的詳細資訊,請參閱 Visual Studio 檔。
debugapi.h 標頭會將 OutputDebugString 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致不符和編譯或執行時間錯誤。 如需詳細資訊,請參閱 函式原型的慣例。
需求
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | debugapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |