【问题标题】:How to output latin characters in Windows Event Viewer如何在 Windows 事件查看器中输出拉丁字符
【发布时间】:2014-05-14 14:30:21
【问题描述】:

我有一个必须在 Windows 事件查看器中写入信息的服务应用程序。碰巧它有一个西班牙语版本,并且需要在文本中包含拉丁字符,因此当信息写入偶数查看器时,它显示不正确。我的 .mc 文件如下:

; // ***** log_messages.mc *****

; // This is the header.

MessageIdTypedef=DWORD

SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)

FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)

LanguageNames=(Spanish=0x0c0a:MSG00c0a)

; // The following are message definitions.

MessageId=0x1
Severity=Informational
Facility=Runtime
SymbolicName=MSG_INFO
Language=Spanish
Información: %1
.

MessageId=0x2
Severity=Warning
Facility=Runtime
SymbolicName=MSG_WARNING
Language=Spanish
Precaución: %1
.

MessageId=0x3
Severity=Error
Facility=Runtime
SymbolicName=MSG_ERROR
Language=Spanish
Error: %1
.

显示信息时,例如信息事件,拉丁字符显示不正确:

如果有人遇到此问题并可以帮助我,谢谢。

【问题讨论】:

    标签: winapi visual-c++ event-viewer


    【解决方案1】:

    所以我解决了,问题是在使用 mc.exe 生成 .h 和 .rc 文件时,我使用了这个参数:

    mc -U mymcfile.mc
    

    考虑到输出应该是在Windows中的Unicode字符集,但是mc工具将输入作为ANSI,所以我添加了一个参数:

    mc -u -U mymcfile.mc
    

    起初它返回了一个错误,因为文件是 ANSI 格式的,但我将它转换为 UNICODE,之后它就可以正常工作了。希望这可以帮助其他人......

    【讨论】:

      猜你喜欢
      • 2012-09-18
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多