Message Compiler(mc.exe)
现在检测.mc文件中的Unicode字节顺序标记(BOM)。如果.mc文件以UTF-8 BOM开头,则它将被读取为UTF-8文件。如果它以UTF-16LE BOM开头,它将被读作UTF-16LE文件。否则,如果指定了-u参数,它将被读取为UTF-16LE文件。否则,将使用当前代码页(CP_ACP)读取它。
现在避免由于冲突配置宏导致MC生成的C/C ++ ETW助手中的单定义规则(ODR)问题(例如,当MCGEN_EVENTWRITETRANSFER定义冲突的两个.cpp文件链接到同一个二进制文件时,MC生成的ETW帮助程序现在将尊重每个.cpp文件中MCGEN_EVENTWRITETRANSFER的定义,而不是任意选择一个或另一个)。
Windows跟踪预处理器(tracewpp.exe)
现在支持Unicode输入(.ini,.tpl和源代码)文件。以UTF-8或UTF-16字节顺序标记(BOM)开头的输入文件将被读取为Unicode。将使用当前代码页(CP_ACP)读取不以BOM开头的输入文件。为了向后兼容,如果指定了-UnicodeIgnore命令行参数,则以UTF-16 BOM开头的文件将被视为空。
现在支持Unicode输出(.tmh)文件。默认情况下,输出文件将使用当前代码页(CP_ACP)进行编码。使用命令行参数-cp:UTF-8或-cp:UTF-16生成Unicode输出文件。
行为更改:tracewpp现在将所有输入文本转换为Unicode,以Unicode执行处理,并将输出文本转换为指定的输出编码。早期版本的tracewpp避免了Unicode转换,并在假定单字节字符集的情况下执行文本处理。在输入文件不符合当前代码页的情况下,这可能会导致行为更改。如果这是一个问题,请考虑将输入文件转换为UTF-8(使用BOM)和/或使用-cp:UTF-8命令行参数以避免编码歧义。
TraceLoggingProvider.h
现在避免由冲突的配置宏引起的单定义规则(ODR)问题(例如,当两个具有冲突的TLG_EVENT_WRITE_TRANSFER定义的.cpp文件链接到同一个二进制文件时,TraceLoggingProvider.h帮助程序现在将遵循每个中TLG_EVENT_WRITE_TRANSFER的定义。cpp文件而不是任意选择一个或另一个)。
在C ++代码中,TraceLoggingWrite宏已更新,以使用可变参数模板在类似事件之间实现更好的代码共享。
最新下载