outputDebugStringW 函数 (debugapi.h)

将字符串发送到调试程序进行显示。

语法

void OutputDebugStringW(
  [in, optional] LPCWSTR 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)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

与调试程序通信

调试函数

VBS enclave 中可用的 Vertdll API