Windows SDK

Windows 11 Windows SDK (10.0.26100) 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 varten, version 24H2 esikatselu ja aiemmat Windows-versiot.

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 alatasolle Windows 10, versio 1809.

Aloittaminen

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

Viimeksi päivitetty: toukokuu 2024

Järjestelmävaatimukset

Windows SDK on 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, varmista, että asennat Microsoft Updaten uusimmat suositellut päivitykset ja korjaustiedostot, ennen kuin asennat Windows SDK.

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 Laajissa Windows-laitteissa. 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 11, koontiversio 10.0.26100 (julkaistu 22.5.2024)

10.0.26100-sarjan ensimmäinen versio, joka vastaa Windows 11 version 24h2 esikatselua.

Windows 11, koontiversio 10.0.22621.3235 (julkaistu 29.2.2024)

Ylläpidon pä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-ohjelmointirajapinnat mahdollistavat sen, että sovellukset, joissa on tabbed-liittymiä, voivat tarjota tietoja avoimista välilehdistä Windows-liittymään.
  • Päivitykset HumanPresence-ohjelmointirajapintoihin käytön helpottamiseksi ja ihmisten läsnäoloa tukevien tunnistimien uusien asetusten lisäämiseksi.
  • RemoteDesktop-ohjelmointirajapintojen avulla sovellukset voivat siirtyä etätyöpöydän ja paikallisen työpöydän välillä.
Windows 11 Windows SDK 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-kirjastoa korvaajaksi.

  • 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 poistettuina 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).
    • Nyt vältetään yksi mää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 ristiriitaiset MCGEN_EVENTWRITETRANSFER määritelmät on linkitetty samaan binaariin, MC:n luomat ETW-aputoiminnot noudattavat nyt kunkin .cpp tiedoston MCGEN_EVENTWRITETRANSFER määritelmää 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:n kanssa 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ä, linkitetään samaan binaariin, TraceLoggingProvider.h-aputoiminnot noudattavat nyt TLG_EVENT_WRITE_TRANSFER määritelmää kussakin .cpp 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 käsittelemään 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).

  • Fixed: "GdiplusTypes.h ei käännä NOMINMAX". Katso Visual Studion 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 for Windows v10:tä, kun kohteena ovat ARM64-ympäristöt.
  • DirectXMath (versio 3.16 mukaan lukien tässä versiossa) ei ole yhteensopiva Windowsin ARM64:n Clang/LLVM: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 odottamattomat ja vaikeasti diagnosoitavat kaatumiset 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