Share via


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

另請參閱

與偵錯工具通訊、 偵錯函式