Sada SDK pro Windows

Sada Windows SDK (10.0.22621) pro Windows 11 verze 22H2 poskytuje nejnovější hlavičky, knihovny, metadata a nástroje pro vytváření aplikací pro Windows. Pomocí této sady SDK můžete vytvářet aplikace Univerzální platforma Windows (UPW) a Win32 pro Windows 11 verze 22H2 a předchozí verze Windows.

Tip

Windows App SDK
Windows App SDK poskytuje jednotnou sadu rozhraní API a nástrojů, které jsou oddělené od operačního systému a vydané pro vývojáře prostřednictvím balíčků NuGet. Tato rozhraní API a nástroje může používat konzistentně libovolná desktopová aplikace na Windows 11 a nižší úroveň až Windows 10 verze 1809.

Začínáme

Sadu Windows SDK můžete získat dvěma způsoby: nainstalovat ji z této stránky výběrem odkazu ke stažení nebo výběrem možnosti "Windows 11 SDK (10.0.22621.0)" ve volitelných komponentách instalačního programu sady Visual Studio 2022. Před instalací této sady SDK:

Poslední aktualizace: 4. října 2021

Požadavky na systém

Sada Windows SDK má následující minimální požadavky na systém:

Podporované operační systémy

  • Windows 10 verze 1507 nebo novější: Home, Professional, Education a Enterprise (VERZE LTSB a S se nepodporují pro UPW)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 a Windows Server 2012 R2 (jenom příkazový řádek)
  • Windows 8.1
  • Windows 7 SP1

(Ve starších operačních systémech nejsou podporované všechny nástroje.)

Požadavky na hardware

  • Procesor 1,6 GHz nebo rychlejší
  • 1 GB paměti RAM
  • 4 GB volného místa na disku

Další požadavky na sadu SDK

Instalace v Windows 8.1 a starších operačních systémech vyžaduje aktualizaci pro prostředí Universal C Runtime ve Windows. Pokud chcete instalovat prostřednictvím služba Windows Update, nezapomeňte před instalací sady Windows SDK nainstalovat nejnovější doporučené aktualizace a opravy ze služby Microsoft Update.

ukázky

Ukázky aplikací pro Windows jsou teď dostupné prostřednictvím GitHubu. Kód můžete procházet na GitHubu, naklonovat osobní kopii úložiště z Gitu nebo stáhnout komprimovaný archiv všech ukázek. Uvítáme zpětnou vazbu, takže pokud máte problém nebo dotaz, můžete otevřít problém v úložišti. Tyto ukázky jsou navržené tak, aby běžely na desktopových, mobilních a budoucích zařízeních, která podporují Univerzální platforma Windows (UPW).

Předchozí verze sady SDK

Dříve vydané sady SDK a emulátory, včetně podrobností o aktualizaci, najdete na stránce archivu.

Rozsvícení rozhraní API

Když používáte nová rozhraní API, zvažte možnost napsat aplikaci tak, aby byla adaptivní, aby správně běžela na nejširší škále zařízení s Windows. Adaptivní aplikace se "rozsvítí" s novými funkcemi všude, kde je zařízení a verze Windows podporují, ale jinak nabízí jenom funkce dostupné na zjištěné verzi platformy. Podrobnosti o implementaci najdete v článku Adaptivní kód verze.

Poznámky k verzi a známé problémy

Windows SDK pro Windows 11, verze 22H2
  • Servisní aktualizace 10.0.22621.755. Zahrnuje podporu ARM64 pro verzi VS 17.4.
Windows 10 SDK, verze 2104
  • Odebrání api-ms-win-net-isolation-l1-1-0.lib. Aplikace, které odkazovaly na api-ms-win-net-isolation-l1-1-0.lib, můžou jako náhradu přepnout na OneCoreUAP.lib.

  • Odebrání irprops.lib. Aplikace, které odkazovaly na soubor irprops.lib, se můžou přepnout na bthprops.lib jako náhradu.

  • Přesunuli jsme enum tagServerSelection z wuapicommon.h do wupai.h a odebrali hlavičku. Pokud chcete použít enum tagServerSelection, budete muset zahrnout wuapi.h nebo wuapi.idl.

  • Sada Windows 10 WinRT API Pack umožňuje přidat nejnovější podporu rozhraní API prostředí Windows Runtime do knihoven a aplikací .NET Framework 4.5+ a .NET Core 3.0+. Pokud chcete získat přístup k Windows 10 WinRT API Pack, podívejte se na balíček NuGet Microsoft.Windows.SDK.Contracts.

  • Řada funkcí printf teď při tisku přesně reprezentovatelných čísel s plovoucí desetinnou čárkou odpovídá pravidlům zaokrouhlování IEEE 754 a bude respektovat režim zaokrouhlení požadovaný prostřednictvím volání funkce fesetround. Starší verze chování je k dispozici při propojování s legacy_stdio_float_rounding.obj.

  • Certifikační sada aplikací pro Windows. Do seznamu Podporovaná rozhraní API v sadě App Certification Kit a Ve Windows Storu se přidalo několik nových rozhraní API. Pokud jsou v seznamu podporovaných rozhraní API, která se v sadě Visual Studio zobrazují šedě nebo jsou zakázaná, můžete udělat malou změnu zdrojového souboru, abyste k nim měli přístup. Další podrobnosti najdete v tomto známém problému. Vyhledejte další aktualizace testů.

  • Aktualizace kompilátoru zpráv (mc.exe):

    • Teď v souborech .mc rozpozná značku pořadí bajtů (BOM) v kódování Unicode. Pokud soubor .mc začíná na UTF-8 BOM, bude přečteno jako soubor UTF-8. V opačném případě, pokud začíná na UTF-16LE BOM, bude přečteno jako soubor UTF-16LE. Pokud jste zadali parametr -u, načte se jako soubor UTF-16LE. Jinak se bude číst pomocí aktuální znakové stránky (CP_ACP).
    • Teď se vyhnete problémům s jednou definicí pravidla (ODR) v pomocných rutinách C/C++ ETW generovaných mc-C++, které jsou způsobeny konfliktními konfiguračními makry (například když jsou dva soubory .cpp s konfliktní definicemi MCGEN_EVENTWRITETRANSFER propojeny do stejného binárního souboru, budou teď pomocníky Trasování událostí pro Windows vygenerované mcem respektovat definici MCGEN_EVENTWRITETRANSFER v každém souboru .cpp místo toho, aby libovolně vybírali jednu nebo druhou).
  • Aktualizace preprocesoru trasování systému Windows (tracewpp.exe):

    • Podporuje vstupní soubory Unicode (.ini, .tpl a zdrojový kód). Vstupní soubory začínající značkou pořadí bajtů (BOM) UTF-8 nebo UTF-16 se budou číst jako Unicode. Vstupní soubory, které nezačínaly kusovníkem, se načtou pomocí aktuální znakové stránky (CP_ACP). Pokud je pro zpětnou kompatibilitu zadán parametr příkazového řádku -UnicodeIgnore, soubory začínající na kusovník UTF-16 budou považovány za prázdné.
    • Podporuje výstupní soubory Unicode (.tmh). Ve výchozím nastavení budou výstupní soubory kódovány pomocí aktuální znakové stránky (CP_ACP). K vygenerování výstupních souborů Unicode použijte parametry příkazového řádku -cp:UTF-8 nebo -cp:UTF-16.
    • Změna chování: Tracewpp teď převede veškerý vstupní text na kódování Unicode, provede zpracování v kódování Unicode a převede výstupní text na zadané kódování výstupu. Dřívější verze tracewpp se vyhnuly převodům unicode a prováděly zpracování textu za předpokladu jednobajtů znakové sady. To může vést ke změnám chování v případech, kdy vstupní soubory neodpovídají aktuální znakové stránce. V případech, kdy se jedná o problém, zvažte převod vstupních souborů na UTF-8 (s BOM) nebo použití parametru příkazového řádku -cp:UTF-8, abyste se vyhnuli nejednoznačnosti kódování.
  • Aktualizace traceLoggingProvider.h:

    • Vyhýbá se problémům s jednou definicí (ODR) způsobeným konfliktním konfiguračním makrem (např. když jsou dva soubory .cpp s konfliktní definicemi TLG_EVENT_WRITE_TRANSFER propojeny do stejného binárního souboru, pomocné rutiny TraceLoggingProvider.h budou nyní respektovat definici TLG_EVENT_WRITE_TRANSFER v každém souboru .cpp, místo aby libovolně vybíraly jednu nebo druhou).
    • V kódu jazyka C++ bylo makro TraceLoggingWrite aktualizováno tak, aby umožňovalo lepší sdílení kódu mezi podobnými událostmi pomocí variadických šablon.
  • Podepisování aplikací. Podepisování v Device Guard je funkce Ochrany Device Guard, která je dostupná v Microsoft Store pro firmy a Education, což podnikům umožňuje zaručit, že každá aplikace pochází z důvěryhodného zdroje. Projděte si dokumentaci k podepisování v ochraně Device Guard.

  • Byly aktualizovány hlavičky sady SDK, aby se vyřešily chyby při kompilaci pomocí preprocesoru jazyka C odpovídajícího standardu v kompilátoru MSVC cl.exe (/Zc:preprocessor, zavedený ve VS 2019 v16.6).

  • Opraveno: "GdiplusTypes.h se nekompiluje s NOMINMAX". Viz Názory k sadě Visual Studio.

  • Při sestavování pomocí /std:c11 nebo /std:c17 teď získáte:

    • C99 tgmath.h
    • C11 static_assert v assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Počítač Clang/LLVM pro Windows v11, který cílí na ARM64, není kompatibilní s nejnovější verzí winnt.h

    • Jako alternativní řešení použijte předchozí verzi sady Windows 10 SDK (build 19041) nebo clang/LLVM pro Windows v10 při cílení na platformy ARM64.
  • DirectXMath (včetně verze 3.16 v této verzi) není kompatibilní s Clang/LLVM pro Windows na ARM64.

  • Velikost některých souborů hlaviček se změnila, aby se normalizovaly pro systémy souborů rozlišující malá a velká písmena:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h a OleCtl.h byly všechny malé.
    • V případě sestavení Clang/LLVM pro Windows přidejte -Wno-nonportable-system-include-path do rozhraní příkazového řádku nebo následující #pragma do zdroje starší verzi i nejnovější sadu Windows 10 SDK bez upozornění:

    #ifdef __clang__

    #pragma clang diagnostic ignored "-Wnonportable-system-include-path"

    #endif

servisní aktualizace sady Windows 10 SDK verze 2004 (vydaná 16. 12. 2020)

Tato verze obsahuje následující soubory. Pokud narazíte na tyto problémy, doporučujeme co nejdříve aktualizovat verzi sady SDK, abyste se jim vyhnuli:

  • Vyřešeno nepředvídatelné a obtížně diagnostikovatelné chybové ukončení při propojování zastřešujících knihoven i nativních knihoven operačního systému (například onecoreuap.lib a kernel32.lib)
  • Vyřešení problému, který bránil fungování appVerifieru
  • Vyřešení problému, který způsoboval selhání WACK s chybou Úlohy se nepodařilo povolit HighVersionLie

Další zdroje informací