【问题标题】:Is there a Unicode alternative to OutputDebugString?OutputDebugString 有 Unicode 替代品吗?
【发布时间】:2013-10-18 05:53:24
【问题描述】:

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

有没有支持 Unicode 的 OutputDebugString() 的替代品?

【问题讨论】:

    标签: windows debugging winapi unicode outputdebugstring


    【解决方案1】:

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

    奇怪的是,调试器从操作系统接收到的用于打印消息的 OUTPUT_DEBUG_STRING_INFO 结构似乎支持让调试器知道字符串是否为 Unicode,只是 OutputDebugStringW 似乎没有使用它全部。

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

    【讨论】:

    • documentation 说:“重要提示:过去,操作系统不会通过OutputDebugStringW 输出Unicode 字符串,而是只输出ASCII 字符串。要强制OutputDebugStringW 正确输出Unicode 字符串,调试器需要调用WaitForDebugEventEx 来选择新的行为。调用WaitForDebugEventEx 时,操作系统会知道调试器支持Unicode,并且特别选择接收Unicode 字符串" 使用最新的调试器
    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 2017-03-05
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    相关资源
    最近更新 更多