Windows SDK

Windows SDK (10.0.22621) for Windows 11, versio 22H2 tarjoaa uusimmat otsikot, kirjastot, metatiedot ja työkalut Windows-sovellusten luomiseen. Tämän SDK:n avulla voit luoda universaali Windows-ympäristö (UWP) ja Win32-sovelluksia Windows 11, versiolle 22H2 ja aiemmille Windows-versioille.

Vihje

Windows App SDK
Windows App SDK tarjoaa yhtenäisen joukon ohjelmointirajapintoja ja työkaluja, jotka erotetaan käyttöjärjestelmästä ja julkaistaan kehittäjille NuGet-pakettien kautta. Näitä ohjelmointirajapintoja ja työkaluja voidaan käyttää yhdenmukaisesti millä tahansa työpöytäsovelluksella Windows 11 ja kautta Windows 10, versio 1809.

Aloittaminen

Voit saada Windows SDK:n kahdella tavalla: asentamalla sen tältä sivulta valitsemalla latauslinkin tai valitsemalla Visual Studio 2022 Installerin valinnaisista osista "Windows 11 SDK (10.0.22621.0).". Ennen kuin asennat tämän SDK:n:

Viimeksi päivitetty 4. lokakuuta 2021

Järjestelmävaatimukset

Windows SDK:ssa on seuraavat järjestelmän vähimmäisvaatimukset:

Tuetut käyttöjärjestelmät

  • Windows 10 versio 1507 tai uudempi: Home, Professional, Education ja Enterprise (LTSB ja S eivät ole tuettuja UWP:ssä)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 ja Windows Server 2012 R2 (vain komentorivi)
  • Windows 8.1
  • Windows 7 SP1

(Kaikkia työkaluja ei tueta aiemmissa käyttöjärjestelmissä)

Laitteistovaatimukset

  • 1,6 GHz:n suoritin tai nopeampi suoritin
  • 1 Gt RAM-muistia
  • 4 Gt käytettävissä olevaa kiintolevytilaa

SDK:n lisävaatimukset

asennus Windows 8.1:een ja aiempiin käyttöjärjestelmiin edellyttää Windowsin Universal C Runtime -päivitystä. Jos haluat asentaa Windows Update kautta, asenna Microsoft Updaten uusimmat suositellut päivitykset ja korjaustiedostot ennen Windows SDK:n asentamista.

Mallit

Windows-sovellusnäytteet ovat nyt käytettävissä GitHubin kautta. Voit selata koodia GitHubissa, kloonata säilön henkilökohtaisen kopion Gitistä tai ladata zip-arkiston kaikista näytteistä. Otamme palautteesi vastaan, joten voit avata ongelman säilössä, jos sinulla on ongelmia tai kysymyksiä. Nämä mallit on suunniteltu käytettäväksi työpöytälaitteissa, mobiililaitteissa ja tulevissa laitteissa, jotka tukevat universaali Windows-ympäristö (UWP).

Aiemmat SDK-versiot

Aiemmin julkaistut SDK:t ja emulaattorit, mukaan lukien päivitystiedot, löytyvät arkistosivulta.

Ohjelmointirajapinnan valo

Kun käytät uusia ohjelmointirajapintoja, harkitse sovelluksesi kirjoittamista mukautuvaksi niin, että se toimii oikein Windows-laitteiden laajissa matriiseissa. Mukautuva sovellus "syttyy" uusilla ominaisuuksilla aina, kun laitteet ja Windows-versio tukevat niitä, mutta muutoin se tarjoaa vain tunnistetussa käyttöympäristöversiossa käytettävissä olevat toiminnot. Lisätietoja toteutuksesta on artikkelissa Mukautuvan koodin versio.

Julkaisutiedot ja tunnetut ongelmat

Windows SDK for Windows 11, versio 22H2
  • Palvelupäivitys 10.0.22621.755. Sisältää ARM64-tuen VS 17.4 -versiolle
Windows 10 SDK, versio 2104
  • Poistettu api-ms-win-net-isolation-l1-1-0.lib. Sovellukset, jotka linkittyivät api-ms-win-net-isolation-l1-1-0.lib-kirjastoa vastaan, voivat vaihtaa oneCoreUAP.lib-funktion tilalle.

  • Poistettu irprops.lib. Sovellukset, jotka linkittyivät irprops.lib:tä vastaan, voivat vaihtaa bthprops.lib-sovellukseen avattavana korvaajana.

  • Siirsi ENUM tagServerSelection -asetuksen kohteesta wuapicommon.h kohteeseen wupai.h ja poisti otsikon. Jos haluat käyttää ENUM tagServerSelection -toimintoa, sinun on sisällytettävä wuapi.h tai wuapi.idl.

  • Windows 10 WinRT-ohjelmointirajapintapaketin avulla voit lisätä uusimmat Windowsin suorituspalvelu ohjelmointirajapintojen tuen yli .NET Framework 4.5- ja .NET Core 3.0 -kirjastoihisi ja -sovelluksiisi. Jos haluat käyttää Windows 10 WinRT-ohjelmointirajapintapakettia, tutustu Microsoft.Windows.SDK.Contractsin nuget-pakettiin.

  • Funktioperhe on nyt IEEE 754:n pyöristyssääntöjen mukainen , kun tulostetaan täysin edustettavissa olevia liukulukuja. Lisäksi se noudattaa pyöristystilaa, jota pyydetään fesetround-kutsujen kautta. Vanha toiminta on käytettävissä linkitettäessä legacy_stdio_float_rounding.obj.

  • Windows-sovellussertifiointipaketti. Useita uusia ohjelmointirajapintoja lisättiin tuettujen ohjelmointirajapintojen luetteloon sovellussertifiointipaketissa ja Windows-kaupassa. Jos tuetuissa luettelossa on ohjelmointirajapintoja, jotka näkyvät harmaina tai poissa käytöstä Visual Studiossa, voit tehdä pienen muutoksen lähdetiedostoon niiden käyttämiseksi. Katso lisätietoja tästä tunnetusta ongelmasta. Etsi lisää päivityksiä testeihin.

  • Viestinkääntäjän (mc.exe) päivitykset:

    • Tunnistaa nyt Unicode-tavutilausmerkin (BOM) .mc-tiedostoissa. Jos .mc-tiedosto alkaa UTF-8 BOM -tiedostolla, se luetaan UTF-8-tiedostona. Muussa tapauksessa, jos sen alussa on UTF-16LE BOM, se luetaan UTF-16LE-tiedostona. Jos -u-parametri on määritetty, se luetaan UTF-16LE-tiedostona. Muussa tapauksessa koodi luetaan käyttämällä nykyistä koodisivua (CP_ACP).
    • Välttää nyt yksimääritelmäsäännön (ODR) ongelmat MC:n luomissa C/C++ ETW -aputoiminnoissa, jotka johtuvat ristiriitaisista määritysmakroista (esimerkiksi kun kaksi .cpp-tiedostoa, joissa on ristiriitaisia MCGEN_EVENTWRITETRANSFER määritelmiä, yhdistetään samaan binaariin, MC:n luomat ETW-aputoiminnot noudattavat nyt MCGEN_EVENTWRITETRANSFER määritelmää jokaisessa .cpp-tiedostossa sen sijaan, että valitsisivat toisen mielivaltaisesti).
  • Windows Trace Preprocessor (tracewpp.exe) -päivitykset:

    • Tukee Unicode-syötetiedostoja (.ini, .tpl- ja lähdekooditiedostoja). UTF-8- tai UTF-16-tavutilausmerkillä (BOM) alkavat syötetiedostot luetaan Unicode-muodossa. Syötetiedostot, jotka eivät ala tuoterakenteella, luetaan nykyisellä koodisivulla (CP_ACP). Jos yhteensopivuus aikaisempien versioiden kanssa on määritetty -UnicodeIgnore-komentoriviparametri, UTF-16 BOM-parametrilla aloitettuja tiedostoja käsitellään tyhjinä.
    • Tukee Unicode-tulostiedostoja (.tmh). Oletusarvon mukaan tulostiedostot koodataan nykyisellä koodisivulla (CP_ACP). Luo Unicode-tulostiedostot komentoriviparametreilla -cp:UTF-8 tai -cp:UTF-16.
    • Käyttäytymisen muutos: tracewpp muuntaa nyt kaiken syötetekstin Unicode-muotoon, suorittaa prosessoinnin Unicodessa ja muuntaa tulostetekstin määritetyksi tulostekoodausksi. Tracewpp-funktion aiemmat versiot välttivät Unicode-muunnokset ja suorittivat tekstinkäsittelyn olettaen, että yksitavuinen merkistö on. Tämä voi johtaa käyttäytymismuutoksiin tapauksissa, joissa syötetiedostot eivät vastaa nykyistä koodisivua. Jos tämä on ongelma, harkitse syötetiedostojen muuntamista UTF-8:ksi (BOM:llä) ja/tai -cp:UTF-8-komentoriviparametrin avulla, jotta vältät koodauksen moniselitteisyyden.
  • TraceLoggingProvider.h-päivitykset:

    • Tällä vältetään yksimääritelmäsäännön (ODR) ongelmat, jotka johtuvat ristiriitaisista määritysmakroista (esim. kun kaksi .cpp-tiedostoa, joissa on ristiriitaisia TLG_EVENT_WRITE_TRANSFER määritelmiä, yhdistetään samaan binaariin, TraceLoggingProvider.h-aputoiminnot noudattavat nyt kunkin .cpp-tiedoston TLG_EVENT_WRITE_TRANSFER määritystä sen sijaan, että valitsisit toisen mielivaltaisesti).
    • C++-koodissa TraceLoggingWrite-makro on päivitetty, jotta koodin jakaminen olisi helpompaa samankaltaisten tapahtumien välillä variadipohjaisten mallien avulla.
  • Allekirjoita sovelluksesi. Laitesuojan allekirjoitus on Laitesuoja-ominaisuus, joka on saatavilla Microsoft Storen yritysportaali and Educationissa, ja sen avulla yritykset voivat taata, että jokainen sovellus on peräisin luotetusta lähteestä. Katso ohjeet laitesuojan allekirjoituksesta.

  • SDK-otsikot on päivitetty korjaamaan virheitä, kun ne käännetään KÄYTTÄMÄLLÄ MSVC-kääntäjän cl.exe (/Zc:preprocessor, joka otettiin käyttöön VS 2019 v16.6:ssa).

  • Kiinteä: "GdiplusTypes.h ei käännä NOMINMAX:n avulla". Katso Visual Studion palaute.

  • Kun luot rakenneriville /std:c11 tai /std:c17, saat nyt seuraavaa:

    • C99 tgmath.h
    • C11 static_assert asiassa assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM for Windows v11 targeting ARM64 ei ole yhteensopiva viimeisimmän winnt.h:n kanssa

    • Vaihtoehtoisena menetelmänä voit käyttää Windows 10 SDK:n aiempaa versiota (koontiversio 19041) tai clang/LLVM for Windows v10:tä, kun se kohdistuu ARM64-ympäristöihin
  • DirectXMath (mukaan lukien versio 3.16 tässä versiossa) ei ole yhteensopiva Clang/LLVM for Windows on ARM64:n kanssa.

  • Joidenkin otsikkotiedostojen tapausta muutettiin normalisoimaan kirjainkoon huomioon ottava tiedostojärjestelmä:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h ja OleCtl.h olivat kaikki pieniä.
    • Windowsin Clang/LLVM-koontiversiot, jotka tukevat sekä vanhempaa versiota että viimeisintä Windows 10 SDK:ta ilman varoituksia, lisätään -Wno-nonportable-system-include-path komentorivikäyttöliittymään tai lähteeseen seuraava #pragma:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, vuoden 2004 versiopäivitys (julkaistu 16.12.2020)

Tämä julkaisuversio sisältää seuraavat tiedostot. Jos kohtaat näitä ongelmia, suosittelemme päivittämään SDK-versiosi mahdollisimman pian niiden välttämiseksi:

  • Selvitti arvaamattomat ja vaikeasti diagnosoitavat onnettomuudet yhdistäessään sekä sateenvarjokirjastoja että alkuperäisiä käyttöjärjestelmän kirjastoja (esimerkiksi onecoreuap.lib ja kernel32.lib)
  • Ratkaistu ongelma, joka esti AppVerifieria toimimasta
  • Ratkaistu ongelma, joka aiheutti WACK:n epäonnistumisen ja jonka "Tehtävä epäonnistui HighVersionLien käyttöönotossa"

Lisää resursseja