Windows SDK

Windows 1SDK (10.0.22000) Windows 11:lle, sisältää uusimmat resurssit, kirjastot, metatiedot ja työkalut Windows-sovellusten kehittämistä varten. Käytä tätä SDK:ta, kun haluat kehittää universaalin Windows-ympäristön (UWP) sovelluksia ja Win32-sovelluksia Windows 11:tä ja aikaisempia Windows-versioita varten.

Aloittaminen

Voit hankkia Windows SDK:n kahdella tavalla: asentamalla sen tästä sivustosta valitsemalla latauslinkin tai valitsemalla Visual Studio 2019 -asennusohjelman valinnaisista komponenteista vaihtoehdon “Windows 11 SDK (10.0.22000)”.

Tee seuraavat toimet ennen tämän SDK:n asentamista:

  1. Lue kaikki järjestelmävaatimukset
  2. Sulje Visual Studio ennen asennusta.
  3. Lue julkaisutiedot ja tunnetut ongelmat.

Järjestelmävaatimukset

Windows SDK asettaa seuraavat vähimmäisvaatimukset järjestelmälle:

Tuetut käyttöjärjestelmät

  • Universaalin Windows-ympäristön (UWP) sovelluksen suunnittelu
    • Windows 10:n versio 1507 tai uudempi versio: Home, Professional, Education ja Enterprise (LTSB ja S eivät ole tuettuja)
    • Windows Server 2019, Windows Server 2016 ja Windows Server 2012 R2 (vain komentorivi)
  • Win32-sovellusten kehittäminen
    • Windows 10:n versio 1507 tai uudempi versio
    • Windows Server 2019, Windows Server 2016 ja Windows Server 2012 R2 (vain komentorivi)
    • Windows 8.1
    • Windows 7 SP1

(Vanhemmat käyttöjärjestelmät eivät tue kaikkia työkaluja.)

Laitteistovaatimukset

  • Vähintään 1,6 GHz:n suoritin
  • 1 Gt RAM-muistia
  • 4 Gt vapaata kiintolevytilaa

SDK:n lisävaatimukset

Asennus Windows 8.1:een ja sitä vanhempiin käyttöjärjestelmiin vaatii päivityksen KB2999226. Jos haluat suorittaa asennuksen Windows Updaten kautta, asenna viimeisimmät suositellut päivitykset ja korjaustiedostot Microsoft Updatesta ennen Windows SDK:n asentamista.

Uudet ominaisuudet

Windows 11:n Windows SDK:n avulla voit päivittää sovelluksesi Windows-käyttöjärjestelmän uusinta versiota varten. Lue lisää Windows 11:n uusista ominaisuuksista.

Jos haluat nähdä Windows 11:n uudet ohjelmointirajapinnat, katso Windows 11 -koontiversion 22000 uudet ohjelmointirajapinnat.

ARM-laitteilla käytettävän Windows 11 -käyttöjärjestelmän binaaritiedostot on rakennettu uudelleen ARM64EC:n avulla niin, että x64-sovellusten lataama järjestelmäkoodi toimii alkuperäisellä nopeudella. ARM64EC:n avulla voit siirtää sovelluksesi asteittain alkuperäisellä nopeudella ARM-laitteissa toimiviksi, vaikka käytössä olisi riippuvuuksia tai laajennuksia, joissa ei vielä ole ARM-tukea. Lue ilmoitus.

Esimerkit

Windows-esimerkkisovellukset ovat nyt saatavilla GitHubin kautta. Voit selata koodia GitHubissa, kloonata säilön henkilöhtaisen kopion Gitistä tai ladata kaikki esimerkkisovellukset pakattuna tiedostona. Arvostamme palautetta, joten voit vapaasti avata ongelman arkistossa, jos sinulla on ongelma tai kysymys. Nämä näytteet on suunniteltu toimimaan työpöydällä, mobiililaitteissa ja tulevaisuuden laitteissa, jotka tukevat Universaali Windows-ympäristö (UWP) -alustaa.

Aiemmat SDK-versiot

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

API:n kirkastuminen

Kun käytät uusia ohjelmointirajapintoja, harkitse sovelluksen kirjoittamista mukautuvaksi niin, että se toimii oikein laajalla valikoimalla Windows-laitteita. Mukautuva sovellus ”kirkastuu” uusilla ominaisuuksilla aina, kun laitteet ja Windowsin versio tukevat niitä, mutta muuten se tarjoaa vain käytettävissä olevat toiminnot havaitussa alustaversiossa. Käyttöönottoon liittyviä tietoja on Versioon mukautuvaa koodia käsittelevässä artikkelissa.

Julkaisutiedot ja tunnetut ongelmat

Windows 10 SDK, versio 2104

  • Api-ms-win-net-isolation-l1-1-0.lib on poistettu. Kirjastoon api-ms-win-net-isolation-l1-1-0.lib linkittäneet sovellukset voivat korvata sen OneCoreUAP.lib-kirjastolla.
  • Irprops.lib on poistettu. Kirjastoon irprops.lib linkittäneet sovellukset voivat korvata sen helposti bthprops.lib-kirjastolla.
  • ENUM tagServerSelection on siirretty wuapicommon.h-otsikkotiedostosta wupai.h-otsikkotiedostoon, ja otsikko on poistettu. Jos haluat käyttää ENUM tagServerSelectionia, sinun on sisällytettävä wuapi.h tai wuapi.idl.
  • Windows 10 WinRT API Packin avulla voit lisätä uusimpien Windowsin suorituspalvelun ohjelmointirajapintojen tuen .NET Framework 4.5+- ja .NET Core 3.0+ -kirjastoihin ja -sovelluksiin. Jos haluat käsitellä Windows 10 WinRT API Packia, tutustu Microsoft.Windows.SDK.Contracts-NuGet-pakettiin.
  • Printf-funktioryhmä noudattaa nyt IEEE 754 -pyöristyssääntöjä tulostettaessa tarkkaan esitettäviä liukulukuja, ja se noudattaa fesetround-toiminnon kutsujen kautta pyydettyä pyöristystilaa. Aiempi toiminta on käytettävissä linkitettäessä kohteeseen legacy_stdio_float_rounding.obj.
  • Windows-sovellusten sertifiointipaketti. Sovellusten sertifiointipaketin ja Windows-kaupan tuettujen ohjelmointirajapintojen joukkoon on lisätty joukko uusia ohjelmointirajapintoja. Jos tuettujen luettelossa on ohjelmointirajapintoja, jotka näkyvät harmaina tai eivät ole käytettävissä Visual Studiossa, pääset käyttämään niitä tekemällä pienen muutoksen lähdetiedostoon. Katso lisätietoja tästä tunnetusta ongelmasta. Etsi lisää päivityksiä testeihin.
  • Message Compilerin (mc.exe) päivitykset:
    • Tunnistaa nyt Unicode-tavujärjestysmerkin (BOM) .mc-tiedostoissa. Jos .mc-tiedosto alkaa UTF-8-tavujärjestysmerkillä, se luetaan UTF-8-tiedostona. Muussa tapauksessa, jos se alkaa UTF-16LE-tavujärjestysmerkillä, se luetaan UTF-16LE-tiedostona. Jos -u-parametri on määritetty, se luetaan UTF-16LE-tiedostona. Muussa tapauksessa se luetaan nykyistä koodisivua (CP_ACP) käyttäen.
    • Nyt vältetään MC-generoitujen C/C++ ETW -apuosien yhden määritelmän ehdon (ODR) ongelmat, jotka syntyvät määritysmakrojen ristiriidoista (esimerkiksi kun kaksi .cpp-tiedostoa, joiden MCGEN_EVENTWRITETRANSFER-määritelmät ovat ristiriidassa keskenään, linkitetään samaan binaaritiedostoon, MC-generoidut ETW-apuosat pyrkivät noudattamaan molempien .cpp-tiedostojen MCGEN_EVENTWRITETRANSFER-määritelmää sen sijaan että valitsisivat mielivaltaisesti jommankumman).
  • Windows Trace Preprocessorin (tracewpp.exe) päivitykset:
    • Tukee Unicode-syötetiedostoja (.ini, .tpl ja lähdekoodi). Syötetiedostot, jotka alkavat UTF-8- tai UTF-16-tavujärjestysmerkillä (BOM), luetaan Unicode-muodossa. Syötetiedostot, jotka eivät ala tavujärjestysmerkillä, luetaan nykyistä koodisivua käyttäen (CP_ACP). Jotta taattaisiin yhteensopivuus aikaisempien versioiden kanssa, UTF-16-tavujärjestysmerkillä alkavia tiedostoja käsitellään tyhjinä, jos komentorivin -UnicodeIgnore-parametri on määritetty.
    • Tukee Unicode-tulostustiedostoja (.tmh). Tulostustiedostot koodataan käyttämällä nykyistä koodisivua (CP_ACP). Luo Unicode-tulostustiedostoja käyttämällä komentorivin parametreja -cp:UTF-8 tai -cp:UTF-16.
    • Käyttäytymisen muutos: tracewpp muuntaa nyt kaiken syötetekstin Unicode-muotoon, suorittaa prosessoinnin Unicode-muodossa ja muuntaa tulostustekstin määriteltyyn tulostuskoodausmuotoon. Aikaisemmat tracewpp-versiot välttivät Unicode-muunnoksia ja suorittivat tekstinkäsittelyn oletuksenaan yhden tavun merkistö. Tämä voi johtaa käyttäytymisen muutoksia tapauksissa, joissa syötetiedostot eivät ole nykyisen koodisivun mukaisia. Ongelmatapauksissa harkitse syötetiedostojen muuntamista UTF-8-muotoon (tavujärjestysmerkkeineen) ja/tai -cp:UTF-8-komentoriviparametrin käyttämistä koodauksen moniselitteisyyden välttämiseksi.
  • TraceLoggingProvider.h:n päivitykset:
    • Välttää yhden määritelmän säännön (ODR) ongelmat, jotka syntyvät määritysmakrojen ristiriidoista (esimerkiksi kun kaksi .cpp-tiedostoa, joiden TLG_EVENT_WRITE_TRANSFER-määritelmät ovat ristiriidassa keskenään, TraceLoggingProvider.h-apuosat pyrkivät noudattamaan molempien .cpp-tiedostojen TLG_EVENT_WRITE_TRANSFER-määritelmää sen sijaan että valitsisivat mielivaltaisesti jommankumman).
    • C++-koodissa TraceLoggingWrite-makro on päivitetty mahdollistamaan parempi koodin jakaminen samanlaisten tapahtumien välillä käyttämällä malleja, joille voidaan välittää vaihteleva määrä parametreja.
  • Sovellusten allekirjoittaminen. Device Guard -allekirjoitus on Device Guard -ominaisuus, joka on käytettävissä Microsoft Storen yritys- ja oppilaitosportaalissa. Sen avulla yritykset voivat taata, että jokainen sovellus on peräisin luotetusta lähteestä. Tutustu Device Guard -allekirjoituksen dokumentaatioon.
  • SDK-otsikot on päivitetty virheiden korjaamiseksi, kun käytetään vakiomuotoista C-esikäsittelyä MSVC-kokoajan cl.exe-tiedostossa (/Zc:preprocessor, otettu käyttöön versiossa 2019 v16.6).
  • Muuttumaton: “GdiplusTypes.h does not compile with NOMINMAX”. Katso Visual Studio ‑palaute.
  • Kun kehityksessä käytetään /std:c11 tai /std:c17, saat nyt:
    • C99 tgmath.h
    • C11 static_assert in assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Windows v11:n Clang/LLVM , joka kohdistuu ARM64:ään, ei ole yhteensopiva uusimman winnt.h:n kanssa
    • Voit kiertää ongelman käyttämällä Windows 10 SDK:n aiempaa versiota (koontiversio 19041) tai Windows v10:n clang/LLVM:ää kohdistaessasi ARM64:ään
  • DirectXMath (ml. tämän julkaisun versio 3.16) ei ole yhteensopiva Windowsin Clang/LLVM:n kanssa ARM64:llä.
  • Joidenkin otsikkotiedostojen kirjainkokoa muutettiin, jotta ne olisivat yhdenmukaiset kirjainkoon huomioivissa tiedostojärjestelmissä:
    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h ja OleCtl.h vaihdettiin pienikirjaimisiksi.
    • Windowsin Clang/LLVM-koontiversiot tukevat Windows 10 SDK:n sekä vanhempaa että viimeisintä versiota ilman varoituksia, kun lisäät “-Wno-nonportable-system-include-path” CLI:hin ta seuraavan #pragma’n lähteeseen:

      #ifdef __clang__
      #pragma clang diagnostic ignored "-Wnonportable-system-include-path"
      #endif

Windows 10 SDK, version 2004 palvelupäivitys (julkaistu 16.12.2020)

    Tämä julkaisu sisältää seuraavat tiedostot. Jos kohtaat näitä ongelmia, niiden välttämiseksi suosittelemme, että päivität SDK-versiosi mahdollisimman pian:
  • Korjattu arvaamattomat ja vaikeasti diagnosoitavat kaatumiset linkitettäessä sekä kattokirjastoja että alkuperäisiä käyttöjärjestelmäkirjastoja (esimerkiksi onecoreuap.lib ja kernel32.lib)
  • Korjattu ongelma, joka esti AppVerifierin toiminnan
  • Korjattu ongelma, joka aiheutti WACK:n kaatumisen ”Task failed to enable HighVersionLie”

Anna palautetta

Tunnettujen ongelmien osalta katso winapi-sdk Q&A.

Lähetä uusia kehittäjäominaisuuksia koskevat pyynnöt Developer Platform/API -luokan palautekeskussovelluksen kautta.

Lisää resursseja

Ladattavat resurssit ja työkalut

Hanki uusimmat versiot Visual Studion ja Windows 10:n kehitystyökaluista.

LISÄTIETOJA

SDK-arkisto

Etsi Window SDK:n ja muiden työkalujen edelliset versiot.

KATSO ARKISTO

Windows-blogi

Pysy ajan tasalla uusimmista SDK-väliversioista tilaamalla blogimme.

HANKI SDK-VÄLIVERSIOIDEN UUTISET

Windowsin elinkaaren tiedote

Löydä Windowsin julkaisupäivitysten ja tuen päättymispäivien avainpäivämäärät.

LUE TIEDOTE