時間:2019-05-14 來源:互聯網 瀏覽量:
5月14日消息 微軟已經在開發Windows 10 20H1預覽版,預計將在明年4月份發布。近期,微軟發布了Windows 10 20H1 SDK的第一個預覽版本build 18890。包括了消息編譯器,Windows跟蹤預處理器等更新。
下麵是更新內容:
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預覽版本。還提供隨附版本的硬件實驗室套件(HLK),評估和部署套件(ADK)以及Windows驅動程序工具包(WDK)。