Windows SDK

Windows 11 Windows SDK (10.0.22621) sisältää 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 23H2:lle 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. 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 Windows SDK kahdella tavalla: asenna se 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 helmikuussa 2024

Järjestelmävaatimukset

Windows SDK on 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ää Windowsin Universal C Runtime -päivitystä. Jos haluat suorittaa asennuksen Windows Update kautta, varmista, että asennat uusimmat suositellut päivitykset ja korjaukset Microsoft Updatesta ennen Windows SDK asentamista.

Mallit

Windows-sovellusmallit 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 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 11, koontiversio 10.0.22621.3235 (julkaistu 29.2.2024)

Palvelupäivitys 10.0.22621.3235.

Windows 11, koontiversio 10.0.22621.2428 (julkaistu 24.10.2023)

Palvelupäivitys 10.0.22621.2428.

Windows 11, versio 22H2, koontiversio 10.0.22621.1778

Päivitys 10.0.22621.1778. Korostettuja ominaisuuksia ovat muun muassa seuraavat:

  • WindowTabManager-ohjelmointirajapintojen avulla tabbed-liittymät mahdollistavat tietojen tarjoamisen Windows-liittymän avoimista välilehdistä.
  • Päivitykset HumanPresence-ohjelmointirajapintoihin käytön helpottamiseksi ja uusien asetuksien lisäämiseksi ihmisen läsnäoloa tukeville antureille.
  • RemoteDesktop-ohjelmointirajapinnat mahdollistavat sovellusten siirtymisen etätyöpöydän ja paikallisen työpöydän välillä.
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 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.Contracts -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-kaupassa. Jos tuetussa luettelossa on ohjelmointirajapintoja, jotka näkyvät harmaina tai poistettuina käytöstä Visual Studiossa, voit tehdä pienen muutoksen lähdetiedostoon käyttääksesi niitä. 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 MCGEN_EVENTWRITETRANSFER ristiriitaisilla määritysmääritelmillä yhdistettyä tiedostoa yhdistetään samaan binaarimuotoon, MC:n luomat ETW-aputoiminnot noudattavat nyt MCGEN_EVENTWRITETRANSFER määritystä 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-apuohjelmat noudattavat nyt kunkin .cpp tiedoston TLG_EVENT_WRITE_TRANSFER määritystä sen sijaan, että ne poimiisivat yhden tai toisen mielivaltaisesti).
    • C++-koodissa TraceLoggingWrite-makro on päivitetty, jotta koodin jakaminen samankaltaisten tapahtumien välillä olisi parempaa variadisia malleja käyttämällä.
  • 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 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 tehtiin kaikki pienillä kirjaimilla.
    • Windowsin Clang/LLVM-koontiversiot, jotka tukevat sekä vanhempaa versiota että uusinta Windows 10 SDK:ta ilman varoituksia, lisätään -Wno-nonportable-system-include-path komentorivikäyttöliittymään tai seuraaviin 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 diagnosoida kaatumisia linkittäessä 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