Windows SDK

A Windows SDK (10.0.22621) Windows 11 22H2-es verziója a Legújabb fejléceket, kódtárakat, metaadatokat és eszközöket biztosítja a Windows-alkalmazások létrehozásához. Ezzel az SDK-val Univerzális Windows-platform (UWP) és Win32-alkalmazásokat hozhat létre Windows 11, 22H2-es és korábbi Windows-kiadásokhoz.

Tipp

Windows App SDK
A Windows-alkalmazás SDK az operációs rendszertől leválasztott és a fejlesztők számára NuGet-csomagokon keresztül kiadott API-k és eszközök egységes készletét biztosítja. Ezeket az API-kat és eszközöket konzisztens módon használhatja bármely asztali alkalmazás, Windows 11 és a Windows 10, 1809-es verzió.

Első lépések

A Windows SDK kétféleképpen szerezhető be: a letöltési hivatkozás kiválasztásával vagy a Visual Studio 2022 Telepítő választható összetevőiben a "Windows 11 SDK (10.0.22621.0)" lehetőség kiválasztásával. Az SDK telepítése előtt:

Legutóbb frissítve: 2021. október 4.

System requirements (Rendszerkövetelmények)

A Windows SDK rendszerkövetelményei a következők:

Támogatott operációs rendszerek

  • Windows 10 1507-es vagy újabb verzió: Home, Professional, Education és Enterprise (AZ LTSB és az S nem támogatott az UWP-hez)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 és Windows Server 2012 R2 (csak parancssor)
  • Windows 8.1
  • Windows 7 SP1

(Nem minden eszköz támogatott a korábbi operációs rendszereken)

Hardverkövetelmények

  • 1,6 GHz-es vagy gyorsabb processzor
  • 1 GB RAM
  • 4 GB szabad merevlemezterület

További SDK-követelmények

A Windows 8.1 és korábbi operációs rendszereken való telepítéshez a Windows universal C futtatókörnyezetének frissítésére van szükség. A Windows Update keresztüli telepítéshez a Windows SDK telepítése előtt telepítse a Microsoft Update legújabb ajánlott frissítéseit és javításait.

Példák

A Windows-alkalmazásminták mostantól elérhetők a GitHubon keresztül. A GitHubon böngészhet a kódban, klónozhatja az adattár személyes másolatát a Gitből, vagy letöltheti az összes minta tömörített archívumát. Szívesen vesszük a visszajelzéseket, ezért nyugodtan nyisson meg egy problémát az adattárban, ha problémája vagy kérdése van. Ezek a minták a Univerzális Windows-platform (UWP) támogató asztali, mobil és jövőbeli eszközökön való futtatásra készültek.

Korábbi SDK-verziók

A korábban kiadott SDK-k és emulátorok, beleértve a frissítés részleteit is, az archív oldalon találhatók.

API – egyszerűsített verzió

Új API-k használatakor érdemes lehet adaptívként írni az alkalmazást, hogy az megfelelően fusson a Windows-eszközök legszélesebb skáláján. Egy adaptív alkalmazás "világít" az új funkciókkal, ahol az eszközök és a Windows-verzió támogatja őket, de máskülönben csak az észlelt platformverzión elérhető funkciókat kínálja. A megvalósítás részleteiért tekintse meg a Verzió adaptív kódját ismertető cikket.

Kibocsátási megjegyzések és ismert problémák

Windows 10 SDK, 2104-es verzió
  • Eltávolított api-ms-win-net-isolation-l1-1-0.lib. Az api-ms-win-net-isolation-l1-1-0.lib-hez kapcsolódó alkalmazások lecserélhetik a t OneCoreUAP.lib fájlt.

  • Eltávolított irprops.lib. Az irprops.lib-hez kapcsolt alkalmazások legördülő csereként válthatnak a bthprops.lib fájlra.

  • Áthelyezte az ENUM tagServerSelection fájlt a wuapicommon.h fájlból a wupai.h fájlba, és eltávolította a fejlécet. Ha az ENUM tagServerSelection-et szeretné használni, a wuapi.h vagy a wuapi.idl fájlt is tartalmaznia kell.

  • A Windows 10 WinRT API Pack lehetővé teszi, hogy a legújabb Windows-futtatókörnyezet API-támogatást adja hozzá a .NET-keretrendszer 4.5+ és .NET Core 3.0+ kódtárakhoz és alkalmazásokhoz. A Windows 10 WinRT API Pack eléréséhez tekintse meg a Microsoft.Windows.SDK.Contracts nuget-csomagot.

  • A printf függvénycsalád most már megfelel az IEEE 754 kerekítési szabályainak , amikor pontosan ábrázolható lebegőpontos számokat nyomtat, és figyelembe veszi a fesetround hívásaival kért kerekítési módot. Az örökölt viselkedés a legacy_stdio_float_rounding.obj-val való összekapcsoláskor érhető el.

  • Windows-alkalmazástanúsítvány-készlet. Az alkalmazástanúsítvány-készlet és a Windows Áruház számos új API-t adott hozzá a támogatott API-k listájához. Ha a támogatott listában vannak olyan API-k, amelyek szürkével jelennek meg vagy le vannak tiltva a Visual Studióban, akkor a forrásfájlt kis módosítással érheti el. További részletekért tekintse meg ezt az ismert problémát. További frissítések keresése a tesztekhez.

  • Az Üzenetfordító (mc.exe) frissítései:

    • Most észleli a Unicode bájtsorrendjelet (BOM) .mc fájlokban. Ha az .mc fájl UTF-8 BOM-val kezdődik, akkor UTF-8 fájlként lesz olvasható. Ellenkező esetben, ha UTF-16LE BOM-val kezdődik, UTF-16LE-fájlként lesz olvasható. Ha a -u paraméter meg van adva, a rendszer UTF-16LE-fájlként olvassa be. Ellenkező esetben a program az aktuális kódlapon (CP_ACP) olvassa be.
    • Most elkerüli az egydefiníciós szabályokkal (ODR) kapcsolatos problémákat az MC által létrehozott C/C++ ETW-segítőkben, amelyeket ütköző konfigurációs makrók okoznak (például ha két , MCGEN_EVENTWRITETRANSFER ütköző definícióval rendelkező .cpp fájl van ugyanahhoz a bináris fájlhoz csatolva, az MC által létrehozott ETW-segítők mostantól tiszteletben tartják az egyes .cpp-fájlokban lévő MCGEN_EVENTWRITETRANSFER definícióját ahelyett, hogy tetszőlegesen kiválasztanák az egyiket vagy a másikat).
  • Windows Trace-előfeldolgozó (tracewpp.exe) frissítései:

    • Támogatja a Unicode-bemeneti (.ini, .tpl és forráskód) fájlokat. Az UTF-8 vagy UTF-16 bájtsorrendjellel (BOM) kezdődő bemeneti fájlok Unicode-ként lesznek olvasva. A nem anyagjegyzékkel kezdődő bemeneti fájlok az aktuális kódlapon (CP_ACP) lesznek beolvasva. A visszamenőleges kompatibilitás érdekében, ha a -UnicodeIgnore parancssori paraméter van megadva, az UTF-16 BOM-val kezdődő fájlok üresként lesznek kezelve.
    • Támogatja a Unicode kimeneti (.tmh) fájlokat. A kimeneti fájlok alapértelmezés szerint az aktuális kódlap (CP_ACP) használatával lesznek kódolva. Unicode-kimeneti fájlok létrehozásához használja a -cp:UTF-8 vagy -cp:UTF-16 parancssori paramétereket.
    • Viselkedésváltozás: a tracewpp mostantól az összes bemeneti szöveget Unicode-ra konvertálja, Unicode-ban hajtja végre a feldolgozást, és konvertálja a kimeneti szöveget a megadott kimeneti kódolásra. A tracewpp korábbi verziói elkerülték a Unicode-átalakításokat, és egy bájtos karakterkészletet feltételezve szövegfeldolgozást hajtottak végre. Ez viselkedésbeli változásokhoz vezethet olyan esetekben, amikor a bemeneti fájlok nem felelnek meg az aktuális kódlapnak. Azokban az esetekben, amikor ez probléma, fontolja meg a bemeneti fájlok UTF-8-ra (BOM-val) való konvertálását, és/vagy használja a -cp:UTF-8 parancssori paramétert a kódolás kétértelműségének elkerülése érdekében.
  • A TraceLoggingProvider.h frissítései:

    • Elkerüli az ütköző konfigurációs makrók által okozott egydefiníciós szabály (ODR) problémáit (például ha két , ütköző definíciójú .cpp fájl TLG_EVENT_WRITE_TRANSFER ugyanabba a bináris fájlba van csatolva, a TraceLoggingProvider.h segítői mostantól tiszteletben tartják az egyes .cpp fájlokban lévő TLG_EVENT_WRITE_TRANSFER definícióját ahelyett, hogy tetszőlegesen kiválasztanák az egyiket vagy a másikat).
    • A C++ kódban a TraceLoggingWrite makró frissült, hogy a variadikus sablonok használatával jobb kódmegosztást lehessen lehetővé tenni a hasonló események között.
  • Az alkalmazások aláírása. A Device Guard-aláírás a Microsoft Store Vállalatoknak és az Education szolgáltatásban elérhető Eszközőr szolgáltatás, amely lehetővé teszi a vállalatok számára, hogy garantálják, hogy minden alkalmazás megbízható forrásból származik. Tekintse meg a Device Guard-aláírás dokumentációját.

  • Az SDK-fejlécek frissültek, hogy az MSVC fordító cl.exe (/Zc:preprocesszor, a VS 2019 16.6-os verzióban bevezetett) szabványos C-előprocesszor használatával történő fordításkor felmerülő hibákat orvosolják.

  • Javítva: "A GdiplusTypes.h nem a NOMINMAX használatával áll össze". Tekintse meg a Visual Studio visszajelzését.

  • Ha az /std:c11 vagy /std:c17 használatával épít, a következőt kapja:

    • C99 tgmath.h
    • C11 static_assert az assert.h fájlban
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM for Windows v11 targeting ARM64 nem kompatibilis a legújabb winnt.h

    • Áthidaló megoldásként használja a Windows 10 SDK (19041-es build) vagy a Windows v10-hez készült clang/LLVM előző verzióját ARM64-platformok megcélzásakor
  • A DirectXMath (beleértve a jelen kiadás 3.16-os verzióját) nem kompatibilis a Windowshoz készült Clang/LLVM-mel ARM64 rendszeren.

  • Egyes fejlécfájlok esetében módosult a kis- és nagybetűket megkülönböztető fájlrendszerek normalizálása:

    • Az OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h és OleCtl.h mind kisbetűsek voltak.
    • A Windows-buildekhez készült Clang/LLVM esetében a régebbi és a legújabb Windows 10 SDK figyelmeztetések nélküli támogatásához adja hozzá -Wno-nonportable-system-include-path a parancssori felülethez, vagy a következő #pragma a forrásban:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, 2004-es verzió karbantartási frissítés (megjelent: 2020.12.16.)

Ez a kiadás a következő fájlokat tartalmazza. Ha ilyen problémákba ütközik, javasoljuk, hogy a lehető leghamarabb frissítse az SDK verzióját, hogy elkerülje őket:

  • Az esernyőkódtárak és a natív operációsrendszer-kódtárak (például a onecoreuap.lib és a kernel32.lib) összekapcsolásakor kiszámíthatatlan és nehezen diagnosztizálható összeomlások elhárítása
  • Megoldottuk azt a problémát, amely megakadályozta az AppVerifier működését
  • Megoldva a probléma, amely miatt a WACK meghiúsult a "Feladat nem tudta engedélyezni a HighVersionLie-t"

További erőforrások