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) |
Library | Kernel32.lib |
DLL | Kernel32.dll |