Win10 20H1预览版首个SDK 18890发布

IT新闻咨询

微软已经在开发Windows 10 20H1预览版,预计将在明年4月份发布。近期,微软发布了Windows 10 20H1 SDK的第一个预览版本build 18890。包括了消息编译器,Windows跟踪预处理器等更新。

 

Win10 20H1预览版首个SDK 18890发布

 

下面是更新内容:

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宏已更新,以使用可变参数模板在类似事件之间实现更好的代码共享。

还有一个重大变化,即删除irprops.lib,因此链接到它的开发人员现在必须链接到bthprops.lib。此外,自Windows 10版本1903以来,该版本带来了许多新的API。

值得注意的是,最新的SDK预览版可以与之前的SDK以及Visual Studio 2017或更高版本并行使用。你可以继续将以Windows 10版本1903为目标的应用程序提交到商店。此外,此版本仅适用于Windows Insider Preview预览版。

 

最新的SDK预览版本下载

 

相关阅读:

Win10 20H1预览版SDK18890更新了什么内容?

相关文章