Sada SDK pro Windows

Sada Windows SDK (10.0.22621) pro Windows 11 verze 22H2 (aktualizace z října 2023) 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: nainstalujte 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: říjen 2023

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 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í systému Windows.
  • Aktualizace 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
  • 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í 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čne 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, které jsou způsobeny konfliktním konfiguračním makrem (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, která 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 vyhovují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
  • 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ři cílení na platformy ARM64 předchozí verzi sady Windows 10 SDK (build 19041) nebo clang/LLVM pro Windows v10.
  • 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 byla změněna, aby se normalizovaly pro systémy souborů s rozlišováním velkých a malých písmen:

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

    #ifdef __clang__

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

    #endif

Windows 10 SDK, servisní aktualizace 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šení nepředvídatelných a obtížně diagnostikovaných chybových ukončení při propojování zastřešujících knihoven a nativních knihoven operačního systému (například onecoreuap.lib a kernel32.lib)
  • Vyřešení problému, který znemožňoval fungování appVerifieru
  • Vyřešení problému, který způsoboval selhání WACK s chybou "Úkol se nepodařilo povolit HighVersionLie"

Další zdroje informací