Sada SDK pro Windows

Windows SDK (10.0.22621) pro Windows 11 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 23H2 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 konzistentně používat libovolná desktopová aplikace na Windows 11 a na nižší úrovni až Windows 10 verze 1809.

Začínáme

Windows SDK můžete získat dvěma způsoby: nainstalovat ho 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: únor 2024

Požadavky na systém

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

Podporované operační systémy

  • Windows 10 verze 1507 nebo vyšší: Home, Professional, Education a Enterprise (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 provést instalaci prostřednictvím služba Windows Update, nezapomeňte před instalací Windows SDK nainstalovat nejnovější doporučené aktualizace a opravy ze služby Microsoft Update.

Ukázky

Ukázky aplikací pro Windows jsou teď k dispozici 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 otázku, můžete otevřít problém v úložišti. Tyto ukázky jsou navržené tak, aby běžely na stolní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 tam, kde je zařízení a verze Windows podporují, ale jinak nabízí pouze funkce dostupné ve 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 11 build 10.0.22621.3235 (vydáno 29. 2. 2024)

Servisní aktualizace 10.0.22621.3235.

Windows 11, build 10.0.22621.2428 (vydáno 24. 10. 2023)

Servisní aktualizace 10.0.22621.2428.

Windows 11, verze 22H2, build 10.0.22621.1778

Aktualizace 10.0.22621.1778 Mezi zvýrazněné funkce patří:

  • Rozhraní API WindowTabManager umožňují aplikacím s rozhraními s kartami poskytovat informace na otevřených kartách do prostředí Windows.
  • Aktualizace do rozhraní HUMANPresence API pro zlepšení snadného používání a přidání nových nastavení pro senzory, které podporují funkce lidské přítomnosti.
  • Rozhraní API RemoteDesktop umožňují aplikacím přepínat mezi vzdálenou a místní plochou.
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
  • Odebrali jsme api-ms-win-net-isolation-l1-1-0.lib. Aplikace, které propojily s api-ms-win-net-isolation-l1-1-0.lib, můžou jako náhradu přepnout t OneCoreUAP.lib.

  • Odebrali jsme irprops.lib. Aplikace, které propojily s irprops.lib, se můžou přepnout na bthprops.lib jako náhradu.

  • Přesunuli jsme enum tagServerSelection z wuapicommon.h na 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 novějších a .NET Core 3.0 nebo novějších. Pokud chcete získat přístup k Windows 10 WinRT API Pack, přečtěte si 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 dodržovat režim zaokrouhlení požadovaný prostřednictvím volání fesetround. Starší verze chování je k dispozici při propojení s legacy_stdio_float_rounding.obj.

  • Certifikační sada aplikací pro Windows. Do seznamu podporovaných rozhraní API v sadě App Certification Kit a Ve Windows Storu bylo přidáno několik nových rozhraní API. Pokud jsou v seznamu podporovaných rozhraní API zobrazená šedě nebo zakázaná v sadě Visual Studio, 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. Přečtěte si další aktualizace testů.

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

    • Teď rozpozná značku pořadí bajtů unicode v souborech .mc. Pokud soubor .mc začíná na kusovníku UTF-8, bude čten jako soubor UTF-8. V opačném případě, pokud začne na kusovníku UTF-16LE, bude čten jako soubor UTF-16LE. Pokud byl zadán parametr -u, bude čten 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 nástrojích C/C++ ETW generovaných MC způsobených konfliktními konfiguračními makry (např. když jsou dva soubory .cpp s konfliktní definicemi MCGEN_EVENTWRITETRANSFER propojeny do stejného binárního souboru, budou teď pomocníky ETW generované MC respektovat definici MCGEN_EVENTWRITETRANSFER v každém souboru .cpp místo toho, aby libovolně vybíraly jeden nebo druhý soubor).
  • Aktualizace preprocesoru trasování windows (tracewpp.exe):

    • Podporuje vstupní soubory Unicode (.ini, .tpl a zdrojový kód). Vstupní soubory začínající značkou pořadí bajtů UTF-8 nebo UTF-16 se budou číst jako Unicode. Vstupní soubory, které nezačínaly kusovníkem, se budou číst pomocí aktuální znakové stránky (CP_ACP). Pokud je pro zpětnou kompatibilitu zadaný parametr příkazového řádku -UnicodeIgnore, budou soubory začínající na kusovníku UTF-16 považovány za prázdné.
    • Podporuje výstupní soubory Unicode (.tmh). Ve výchozím nastavení se výstupní soubory zakódují pomocí aktuální znakové stránky (CP_ACP). Ke generová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 Unicode, provede zpracování v kódování Unicode a převede výstupní text na zadané kódování výstupu. Starší 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 kusovníkem) 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ími konfiguračními makry (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 teď budou respektovat definici TLG_EVENT_WRITE_TRANSFER v každém souboru .cpp namísto libovolného výběru jednoho nebo druhého souboru).
    • V kódu jazyka C++ bylo makro TraceLoggingWrite aktualizováno, aby umožnilo lepší sdílení kódu mezi podobnými událostmi pomocí variadických šablon.
  • Podepisování aplikací. Podepisování device Guard je funkce 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í pomocí ochrany Device Guard.

  • Hlavičky sady SDK byly aktualizovány tak, aby řešily chyby při kompilaci pomocí preprocesoru C vyhovujícího standardu v kompilátoru MSVC cl.exe (/Zc:preprocesor, zavedený ve VS 2019 v16.6).

  • Oprava: "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é.
    • Pro 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í