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-, versio 22H2- ja aiempiin Windows-julkaisuihin.

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. Mitä tahansa työpöytäsovellusta voidaan käyttää johdonmukaisesti näiden ohjelmointirajapintoja ja työkaluja Windows 11 ja jotta ne voivat Windows 10, versio 1809.

Aloittaminen

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

Viimeksi päivitetty 4.10.2021

Järjestelmävaatimukset

Windows SDK sisältää seuraavat järjestelmävaatimukset:

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-lisävaatimukset

asennus Windows 8.1:een ja aiempiin käyttöjärjestelmiin edellyttää Universal C Runtime -päivitystä Windows. Jos haluat suorittaa asennuksen Windows Update kautta, varmista, että asennat uusimmat suositellut päivitykset ja korjaukset Microsoft Updatesta ennen Windows SDK:n asentamista.

Mallit

Windows sovellusmallit ovat nyt saatavilla GitHub kautta. Voit selata koodia GitHub, kloonata säilön henkilökohtaisen kopion Gitistä tai ladata zip-arkiston kaikista näytteistä. Otamme vastaan palautetta, joten voit vapaasti avata ongelman säilössä, jos sinulla on ongelma tai kysymys. Nämä mallit on suunniteltu käytettäväksi pöytäkoneissa, mobiililaitteissa ja tulevissa laitteissa, jotka tukevat universaali Windows-ympäristö (UWP).

Edelliset SDK-versiot

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

Ohjelmointirajapinnan syttyminen

Kun käytät uusia ohjelmointirajapintoja, harkitse sovelluksesi kirjoittamista mukautuvaksi niin, että se toimii oikein laajimmin Windows laitteissa. Mukautuva sovellus "syttyy" uusilla ominaisuuksilla aina, kun laitteet ja Windows versiot tukevat niitä, mutta muutoin se tarjoaa vain tunnistetussa käyttöympäristöversiossa käytettävissä olevat toiminnot. Lisätietoja toteutuksesta on artikkelissa Version mukautuva koodi.

Julkaisutiedot ja tunnetut ongelmat

Windows 10 SDK, versio 2104
  • Poistettu api-ms-win-net-isolation-l1-1-0.lib. Sovellukset, jotka linkittivät api-ms-win-net-isolation-l1-1-0.libia vastaan, voivat vaihtaa korvaavaksi kohteen OneCoreUAP.lib.

  • Poistettu irprops.lib. Sovellukset, jotka linkittivät irprops.lib-kirjastoa vastaan, voivat siirtyä bthprops.lib-kohteeseen avattavana korvaajana.

  • Siirsi enUM tagServerSelection -asetuksen wuapicommon.h:sta wupai.h:iin ja poisti otsikon. Jos haluat käyttää ENUM tagServerSelection -toimintoa, sinun on sisällettävä wuapi.h tai wuapi.idl.

  • Windows 10 WinRT -ohjelmointirajapintapaketin avulla voit lisätä uusimmat Windowsin suorituspalvelu ohjelmointirajapintotuen .NET Framework 4.5+ ja .NET Core 3.0+ -kirjastoihin ja -sovelluksiin. Jos haluat käyttää Windows 10 WinRT-ohjelmointirajapintapakettia, katso Microsoft.Windows. SDK. Sopimusten nuget-paketti.

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

  • Windows sovellusten sertifiointipaketti. Useita uusia ohjelmointirajapintoja lisättiin tuettujen ohjelmointirajapintien luetteloon sovellusten sertifiointipaketissa ja Windows Storessa. Jos tuetussa luettelossa on ohjelmointirajapintoja, jotka näkyvät harmaina tai poistettuina käytöstä Visual Studio, voit tehdä pieniä muutoksia lähdetiedostoon niiden käyttämiseksi. Lisätietoja on tässä tunnetussa ongelmassa. Etsi lisää päivityksiä testeihin.

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

    • Tunnistaa nyt Unicode-tavujärjestysmerkin (BOM) .mc-tiedostoissa. Jos .mc-tiedoston alussa on UTF-8 BOM, 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 se luetaan käyttämällä nykyistä koodisivua (CP_ACP).
    • Nyt vältetään yksimääritelmäsäännön (ODR) ongelmat MC:n luomissa C/C++ ETW -aputoiminnoissa, jotka johtuvat ristiriitaisista määritysmakroista (esim. kun kaksi .cpp-tiedostoa, joissa on ristiriitaiset MCGEN_EVENTWRITETRANSFER määritykset, yhdistetään samaan binaarimuotoon, MC:n luomat ETW-aputoiminnot noudattavat nyt MCGEN_EVENTWRITETRANSFER määritelmää jokaisessa .cpp-tiedostossa sen sijaan, että ne poimisivat satunnaisesti toisen).
  • Windows Trace Preprocessor (tracewpp.exe) -päivitykset:

    • Tukee Unicode-syötetiedostoja (.ini, .tpl ja lähdekoodi). Syötetiedostot, jotka alkavat UTF-8- tai UTF-16-tavutilausmerkillä (BOM), luetaan Unicode-muodossa. Syötetiedostot, jotka eivät ala tuoterakenteella, luetaan käyttämällä nykyistä koodisivua (CP_ACP). Jos yhteensopivuus taaksepäin on määritetty -UnicodeIgnore-komentoriviparametri, UTF-16 BOM:n avulla alkavia tiedostoja käsitellään tyhjinä.
    • Tukee Unicode-tulostiedostoja (.tmh). Oletusarvon mukaan tulostiedostot koodataan nykyisellä koodisivulla (CP_ACP). Luo Unicode-tulostiedostot komentoriviparametrien -cp:UTF-8 tai -cp:UTF-16 avulla.
    • Toiminnan muutos: tracewpp muuntaa nyt kaiken syötetekstin Unicode-muotoon, suorittaa käsittelyn Unicodessa ja muuntaa tulostetekstin määritetyksi tulostekoodauksi. Tracewpp:n aiemmissa versioissa vältettiin Unicode-muunnoksia ja suoritettiin tekstin käsittely olettaen, että käytössä on yksitavuinen merkistö. 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:n kanssa) ja/tai -cp:UTF-8-komentoriviparametrin käyttämistä moniselitteisyyden välttämiseksi.
  • TraceLoggingProvider.h-päivitykset:

    • Välttää yhden määritelmäsäännön (ODR) ongelmat, jotka johtuvat ristiriitaisista määritysmakroista (esim. kun kaksi .cpp-tiedostoa, joissa on ristiriitaisia TLG_EVENT_WRITE_TRANSFER määrityksiä linkitetään samaan binaariin, TraceLoggingProvider.h-aputoiminnot noudattavat nyt kunkin .cpp-tiedoston TLG_EVENT_WRITE_TRANSFER määritystä sen sijaan, että valitsisivat mielivaltaisesti toisen).
    • C++-koodissa TraceLoggingWrite-makro on päivitetty, jotta koodin jakaminen samankaltaisten tapahtumien välillä olisi parempaa variadisten mallien avulla.
  • Sovellusten allekirjoittaminen. Laitesuojan allekirjoitus on laitesuojausominaisuus, joka on käytettävissä Microsoft Storen yritysportaali ja opetuksessa ja jonka avulla yritykset voivat taata, että jokainen sovellus on peräisin luotetusta lähteestä. Katso ohjeet laitesuojan allekirjoituksesta.

  • SDK-otsikoita on päivitetty käsittelemään virheitä, kun ne käännetään käyttämällä standard-conformant C -esikäsittelyä MSVC-kääntäjän cl.exe (/Zc:preprocessor, joka otettiin käyttöön VS 2019 v16.6:ssa).

  • Fixed: "GdiplusTypes.h ei käännä NOMINMAX". Katso Visual Studio palaute.

  • Kun rakennat käyttäen /std:c11 tai /std:c17, saat nyt:

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

    • Voit kiertää ongelman käyttämällä Windows 10 SDK:n aiempaa versiota (koontiversio 19041) tai clang/LLVM-versiota Windows v10:lle, kun kohdentaa ARM64-ympäristöjä
  • DirectXMath (mukaan lukien versio 3.16 tässä versiossa) ei ole yhteensopiva Clang/LLVM:n kanssa ARM64:n Windows 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 tehtiin kaikki pienillä kirjaimilla.
    • Jos haluat käyttää Clang/LLVM for Windows -koontiversioita, voit tukea sekä vanhempaa versiota että uusinta Windows 10 SDK:ta ilman varoituksia lisäämällä -Wno-nonportable-system-include-path komentorivikäyttöliittymään tai seuraavia lähteen #pragma:

    #ifdef __clang__

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

    #endif

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

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

  • Ratkaistu arvaamattomat ja vaikeat vianmääritykset, kun yhdistetään sekä sateenvarjokirjastoja että alkuperäisiä käyttöjärjestelmäkirjastoja (esimerkiksi onecoreuap.lib ja kernel32.lib)
  • Ratkaistu ongelma, joka esti AppVerifieria toimimasta
  • Ratkaistu ongelma, joka aiheutti WACK:n epäonnistumisen virheellä virheellä "Task failed to enable HighVersionLie"

Lisää resursseja