Windows OutputDebugString是否有Unicode替代方案?

Windows OutputDebugString是否有Unicode替代方案?,windows,debugging,winapi,unicode,outputdebugstring,Windows,Debugging,Winapi,Unicode,Outputdebugstring,OutputDebugString()是本机ASCII,这意味着在调用ASCII版本OutputDebugStringA()之前,它会将输入的Unicode字符串转换为本地字符串 除了支持Unicode的OutputDebugString()之外,还有其他方法吗?OutputDebugStringW在内部调用OutputDebugStringA,因此无法在系统代码页中表示的Unicode字符将替换为? 奇怪的是,调试器从操作系统接收到的打印消息的结构似乎确实支持让调试器知道字符串是否为Unico

OutputDebugString()
是本机ASCII,这意味着在调用ASCII版本
OutputDebugStringA()
之前,它会将输入的Unicode字符串转换为本地字符串


除了支持Unicode的
OutputDebugString()
之外,还有其他方法吗?

OutputDebugStringW
在内部调用
OutputDebugStringA
,因此无法在系统代码页中表示的Unicode字符将替换为

奇怪的是,调试器从操作系统接收到的打印消息的结构似乎确实支持让调试器知道字符串是否为Unicode,但它似乎根本没有被
OutputDebugStringW
使用

不幸的是,我不知道有什么机制可以让操作系统使用Unicode字符串引发一个错误。公共API可能无法实现这一点。

网站上说:重要提示:过去,操作系统没有通过
OutputDebugStringW
输出Unicode字符串,而是只输出ASCII字符串。要强制
OutputDebugStringW
正确输出Unicode字符串,调试器需要调用
WaitForDebugEventEx
以选择新行为。调用
WaitForDebugEventEx
时,操作系统将知道调试器支持Unicode,并特别选择接收Unicode字符串“使用最新的调试器”