win10 21h1正式版推送,windows1020h1
微软已经在开发Windows 10 20H1的预览版,预计明年4月发布。近日,微软发布了Windows 10 20H1 SDK的首个预览版build 18890。包括消息编译器、Windows跟踪预处理器等的更新。
下面是更新内容:
Message Compiler(mc.exe)
现在检查。mc文件。如果。mc文件以UTF-8 BOM开始,它将被读取为UTF-8文件。如果它以UTF-16LE BOM开始,它将被读取为UTF-16LE文件。否则,如果指定了-u参数,它将被读取为UTF-16LE文件。否则,将使用当前代码页(CP_ACP)读取它。
现在避免了MC生成的C/C ETW helper中由于配置宏冲突(例如,当两个具有MCGEN_EVENTWRITETRANSFER冲突定义的cpp文件链接到同一个二进制文件,MC生成的ETW帮助程序现在将考虑每个文件中MCGEN_EVENTWRITETRANSFER的定义。cpp文件,而不是任意选择这个或那个)。
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 _事件_写入_传输定义的cpp文件链接到同一个二进制文件,TraceLoggingProvider.h helper现在将在每个文件中遵循TLG _事件_写入_传输的定义。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有什么更新?