Windows SDK

Το Windows SDK (10.0.22621) για Windows 11 έκδοση 22H2 παρέχει τις πιο πρόσφατες κεφαλίδες, βιβλιοθήκες, μετα-δεδομένα και εργαλεία για τη δημιουργία εφαρμογών των Windows. Χρησιμοποιήστε αυτό το SDK για να δημιουργήσετε εφαρμογές Ενιαία πλατφόρμα των Windows (UWP) και Win32 για Windows 11 έκδοση 22H2 και προηγούμενες εκδόσεις των Windows.

Συμβουλή

Windows App SDK
Η Windows App SDK παρέχει ένα ενοποιημένο σύνολο API και εργαλείων που αποσυνδέονται από το λειτουργικό σύστημα και κυκλοφορούν στους προγραμματιστές μέσω πακέτων NuGet. Αυτά τα API και εργαλεία μπορούν να χρησιμοποιηθούν με συνεπή τρόπο από οποιαδήποτε εφαρμογή υπολογιστή σε Windows 11 και downlevel για Windows 10, έκδοση 1809.

Γρήγορα αποτελέσματα

Μπορείτε να λάβετε το Windows SDK με δύο τρόπους: να το εγκαταστήσετε από αυτήν τη σελίδα επιλέγοντας τη σύνδεση λήψης ή επιλέγοντας "Windows 11 SDK (10.0.22621.0)" στα προαιρετικά στοιχεία του Προγράμματος εγκατάστασης του Visual Studio 2022. Πριν εγκαταστήσετε αυτό το SDK:

Τελευταία ενημέρωση: 4 Οκτωβρίου 2021

Απαιτήσεις συστήματος

Το Windows SDK έχει τις ακόλουθες ελάχιστες απαιτήσεις συστήματος:

Υποστηριζόμενα λειτουργικά συστήματα

  • Windows 10 έκδοση 1507 ή νεότερη: Αρχική, Επαγγελματική, Εκπαίδευση και Επιχείρηση (τα LTSB και S δεν υποστηρίζονται για UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 και Windows Server 2012 R2 (γραμμή εντολών μόνο)
  • Windows 8.1
  • Windows 7 SP1

(Δεν υποστηρίζονται όλα τα εργαλεία σε προηγούμενα λειτουργικά συστήματα)

Απαιτήσεις υλικού

  • Επεξεργαστής 1,6 GHz ή ταχύτερος
  • 1 GB RAM
  • 4 GB διαθέσιμου χώρου στον σκληρό δίσκο

Πρόσθετες απαιτήσεις SDK

Η εγκατάσταση σε Windows 8.1 και παλαιότερα λειτουργικά συστήματα απαιτεί μια Ενημέρωση για τον Καθολικό χρόνο εκτέλεσης C στα Windows. Για να κάνετε εγκατάσταση μέσω Windows Update, βεβαιωθείτε ότι έχετε εγκαταστήσει τις πιο πρόσφατες προτεινόμενες ενημερώσεις και ενημερώσεις κώδικα από το Microsoft Update, προτού εγκαταστήσετε το Windows SDK.

Δείγματα

Τα δείγματα εφαρμογών Windows είναι πλέον διαθέσιμα μέσω του GitHub. Μπορείτε να περιηγηθείτε στον κώδικα στο GitHub, να κλωνοποιήσετε ένα προσωπικό αντίγραφο του αποθετηρίου δεδομένων από το Git ή να κάνετε λήψη μιας συμπιεστής αρχειοθήκης όλων των δειγμάτων. Χαιρετίζουμε τα σχόλια, επομένως μην διστάσετε να ανοίξετε ένα ζήτημα στο αποθετήριο δεδομένων εάν έχετε κάποιο πρόβλημα ή ερώτηση. Αυτά τα δείγματα έχουν σχεδιαστεί για να εκτελούνται σε επιτραπέζιες, κινητές και μελλοντικές συσκευές που υποστηρίζουν την Ενιαία πλατφόρμα των Windows (UWP).

Προηγούμενες εκδόσεις του SDK

Τα SDK και οι προσομοιωτές που κυκλοφόρησαν προηγουμένως, συμπεριλαμβανομένων των λεπτομερειών ενημέρωσης, μπορούν να βρεθούν στη σελίδα αρχειοθήκης.

Το API ανάβει

Όταν χρησιμοποιείτε νέα API, εξετάστε το ενδεχόμενο να συντάξετε την εφαρμογή σας ώστε να εκτελείται σωστά στην ευρύτερη γκάμα συσκευών Windows. Μια προσαρμόσιμη εφαρμογή "ανάβει" με νέες δυνατότητες όπου τις υποστηρίζουν οι συσκευές και η έκδοση των Windows, αλλά κατά τα άλλα προσφέρει μόνο τις λειτουργίες που είναι διαθέσιμες στην εντοπισμένη έκδοση πλατφόρμας. Για λεπτομέρειες σχετικά με την υλοποίηση, ανατρέξτε στο άρθρο Προσαρμόσιμος κώδικας έκδοσης.

Σημειώσεις έκδοσης και γνωστά ζητήματα

Windows 10 SDK, Έκδοση 2104
  • Καταργήθηκε το api-ms-win-net-isolation-l1-1-0.lib. Οι εφαρμογές που συνδέονταν με το api-ms-win-net-isolation-l1-1-0.lib μπορούν να αλλάξουν το OneCoreUAP.lib ως αντικατάσταση.

  • Καταργήθηκε η irprops.lib. Οι εφαρμογές που συνδέονταν με το irprops.lib μπορούν να μεταβούν στο bthprops.lib ως αντικατάσταση drop-in.

  • Μετακινήθηκε η ετικέτα ENUMServerSelection από wuapicommon.h σε wupai.h και καταργήθηκε η κεφαλίδα. Εάν θέλετε να χρησιμοποιήσετε την ετικέτα ENUMServerSelection, θα πρέπει να συμπεριλάβετε το wuapi.h ή wuapi.idl.

  • Το πακέτο API Windows 10 WinRT σάς επιτρέπει να προσθέσετε την πιο πρόσφατη υποστήριξη API χρόνος εκτέλεσης των Windows στις βιβλιοθήκες και τις εφαρμογές σας .NET Framework 4.5+ και .NET Core 3.0+. Για να αποκτήσετε πρόσβαση στο πακέτο Windows 10 WinRT API, ανατρέξτε στο πακέτο nuget Microsoft.Windows.SDK.Contracts.

  • Η οικογένεια συναρτήσεων printf συμμορφώνεται πλέον με τους κανόνες στρογγυλοποίησης IEEE 754 κατά την εκτύπωση αριθμών κινητής υποδιαστολής με δυνατότητα εκτύπωσης και θα τηρεί τη λειτουργία στρογγυλοποίησης που ζητείται μέσω κλήσεων στο fesetround. Η συμπεριφορά παλαιού τύπου είναι διαθέσιμη κατά τη σύνδεση με το legacy_stdio_float_rounding.obj.

  • Κιτ πιστοποίησης εφαρμογών Windows. Πολλά νέα API προστέθηκαν στη λίστα Υποστηριζόμενα API στο Κιτ πιστοποίησης εφαρμογής και στο Windows Store. Εάν υπάρχουν API στη λίστα που υποστηρίζεται, τα οποία εμφανίζονται απενεργοποιημένα ή απενεργοποιημένα στο Visual Studio, μπορείτε να κάνετε μια μικρή αλλαγή στο αρχείο προέλευσής σας, για να αποκτήσετε πρόσβαση σε αυτά. Για περισσότερες λεπτομέρειες, ανατρέξτε σε αυτό το γνωστό πρόβλημα. Βρείτε περισσότερες ενημερώσεις για δοκιμές.

  • Ενημερώσεις προγράμματος μεταγλώττισης μηνυμάτων (mc.exe):

    • Τώρα εντοπίζει το σημάδι σειράς byte Unicode (BOM) σε αρχεία .mc. Εάν το αρχείο .mc ξεκινά με τεχνική προδιαγραφή UTF-8, θα διαβαστεί ως αρχείο UTF-8. Διαφορετικά, εάν ξεκινά με bom UTF-16LE, θα διαβαστεί ως αρχείο UTF-16LE. Εάν έχει καθοριστεί η παράμετρος -u, θα διαβαστεί ως αρχείο UTF-16LE. Διαφορετικά, θα διαβαστεί χρησιμοποιώντας την τρέχουσα σελίδα κώδικα (CP_ACP).
    • Τώρα αποφεύγονται προβλήματα ενός-ορισμού-κανόνα (ODR) σε mc-δημιουργημένους βοηθητικούς φορείς C/C++ ETW που προκαλούνται από διενέξεις μακροεντολών ρύθμισης παραμέτρων (π.χ. όταν δύο αρχεία .cpp με ορισμούς διένεξης των MCGEN_EVENTWRITETRANSFER συνδέονται με τον ίδιο δυαδικό αριθμό, οι βοηθοί ETW που δημιουργούνται από mc θα σέβονται τώρα τον ορισμό της MCGEN_EVENTWRITETRANSFER σε κάθε αρχείο .cpp αντί να επιλέγουν αυθαίρετα το ένα ή το άλλο).
  • Ενημερώσεις προεπεξεργαστών ανίχνευσης των Windows (tracewpp.exe):

    • Υποστηρίζει αρχεία εισόδου Unicode (.ini, .tpl και πηγαίο κώδικα). Τα αρχεία εισόδου που ξεκινούν με ένα σημάδι σειράς byte (BOM) UTF-8 ή UTF-16 θα διαβαστούν ως Unicode. Τα αρχεία εισόδου που δεν ξεκινούν με bom θα διαβάζονται χρησιμοποιώντας την τρέχουσα σελίδα κώδικα (CP_ACP). Για συμβατότητα με προηγούμενες εκδόσεις, εάν έχει καθοριστεί η παράμετρος γραμμής εντολών -UnicodeIgnore, τα αρχεία που ξεκινούν με bom UTF-16 θα αντιμετωπίζονται ως κενά.
    • Υποστηρίζει αρχεία εξόδου Unicode (.tmh). Από προεπιλογή, τα αρχεία εξόδου θα κωδικοποιούνται χρησιμοποιώντας την τρέχουσα σελίδα κώδικα (CP_ACP). Χρησιμοποιήστε παραμέτρους γραμμής εντολών -cp:UTF-8 ή -cp:UTF-16 για τη δημιουργία αρχείων εξόδου Unicode.
    • Αλλαγή συμπεριφοράς: Το tracewpp μετατρέπει τώρα όλο το κείμενο εισόδου σε Unicode, εκτελεί επεξεργασία στο Unicode και μετατρέπει το κείμενο εξόδου στην καθορισμένη κωδικοποίηση εξόδου. Παλαιότερες εκδόσεις του tracewpp απέφευγαν τις μετατροπές Unicode και εκτελούσαν επεξεργασία κειμένου υποθέτοντας ένα σύνολο χαρακτήρων μονού byte. Αυτό μπορεί να οδηγήσει σε αλλαγές συμπεριφοράς σε περιπτώσεις όπου τα αρχεία εισόδου δεν συμμορφώνονται με την τρέχουσα σελίδα κώδικα. Σε περιπτώσεις όπου αυτό είναι πρόβλημα, εξετάστε το ενδεχόμενο να μετατρέψετε τα αρχεία εισόδου σε UTF-8 (με BOM) ή/και να χρησιμοποιήσετε την παράμετρο -cp:UTF-8 γραμμής εντολών για να αποφύγετε την ασάφεια κωδικοποίησης.
  • Ενημερώσεις του TraceLoggingProvider.h:

    • Αποφεύγει προβλήματα ενός-ορισμού-κανόνα (ODR) που προκαλούνται από διενέξεις μακροεντολών ρύθμισης παραμέτρων (π.χ. όταν δύο αρχεία .cpp με ορισμούς που βρίσκονται σε διένεξη για TLG_EVENT_WRITE_TRANSFER συνδέονται στο ίδιο δυαδικό, οι βοηθοί της TraceLoggingProvider.h θα σέβονται τώρα τον ορισμό της TLG_EVENT_WRITE_TRANSFER σε κάθε αρχείο .cpp αντί να επιλέγουν αυθαίρετα το ένα ή το άλλο).
    • Στον κώδικα C++, η μακροεντολή TraceLoggingWrite έχει ενημερωθεί για να επιτρέπει καλύτερη κοινή χρήση κώδικα μεταξύ παρόμοιων συμβάντων με χρήση ποικίλων προτύπων.
  • Υπογραφή των εφαρμογών σας. Η υπογραφή Του Προστατευτού συσκευής είναι μια δυνατότητα Προστασίας συσκευών που είναι διαθέσιμη στο Microsoft Store για επιχειρήσεις και στην Εκπαίδευση, η οποία επιτρέπει στις επιχειρήσεις να εγγυώνται ότι κάθε εφαρμογή προέρχεται από μια αξιόπιστη προέλευση. Ανατρέξτε στην τεκμηρίωση σχετικά με την Υπογραφή του Προστατευτικά συσκευής.

  • Οι κεφαλίδες SDK έχουν ενημερωθεί για την αντιμετώπιση σφαλμάτων κατά τη μεταγλώττιση χρησιμοποιώντας τον προεπεξεργαστή C τυπικής συμμόρφωσης στο πρόγραμμα μεταγλώττισης MSVC cl.exe (/Zc:προεπεξεργαστής, που παρουσιάστηκε στο VS 2019 v16.6).

  • Σταθερή: "Το GdiplusTypes.h δεν μεταγλωττίζεται με NOMINMAX". Ανατρέξτε στο θέμα Σχόλια για το Visual Studio.

  • Όταν χτίζετε με /std:c11 ή /std:c17, λαμβάνετε τώρα:

    • C99 tgmath.h
    • C11 static_assert στο assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Το Clang/LLVM για Windows v11 targeting ARM64 δεν είναι συμβατό με το πιο πρόσφατο winnt.h

    • Ως λύση, χρησιμοποιήστε την προηγούμενη έκδοση του Windows 10 SDK (δόμηση 19041) ή clang/LLVM για Windows v10 κατά τη στόχευση πλατφορμών ARM64
  • Το DirectXMath (συμπεριλαμβανομένης της έκδοσης 3.16 σε αυτή την έκδοση) δεν είναι συμβατό με το Clang/LLVM για Windows στο ARM64.

  • Η περίπτωση ορισμένων αρχείων κεφαλίδας άλλαξε, για να κανονικοποιήσετε για συστήματα αρχείων με διάκριση πεζών-κεφαλαίων:

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h και OleCtl.h έγιναν όλα πεζά.
    • Για τις εκδόσεις Clang/LLVM για Windows, για την υποστήριξη παλαιότερης έκδοσης και των πιο πρόσφατων Windows 10 SDK χωρίς προειδοποιήσεις, προσθέστε -Wno-nonportable-system-include-path το στο CLI ή στο ακόλουθο #pragma στην προέλευση:

    #ifdef __clang__

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

    #endif

Windows 10 SDK, Ενημέρωση συντήρησης έκδοσης 2004 (κυκλοφόρησε 16/12/2020)

Αυτή η έκδοση περιέχει τα ακόλουθα αρχεία. Εάν αντιμετωπίσετε αυτά τα προβλήματα, συνιστούμε να ενημερώσετε την έκδοση του SDK σας το συντομότερο δυνατό για να τα αποφύγετε:

  • Επιλύθηκε απρόβλεπτο και δύσκολο να διαγνώσετε συντριβές κατά τη σύνδεση βιβλιοθηκών ομπρέλας και εγγενών βιβλιοθηκών λειτουργικού συστήματος (για παράδειγμα, onecoreuap.lib και kernel32.lib)
  • Επιλύθηκε ζήτημα που απέτρεψε τη λειτουργία του AppVerifier
  • Επιλύθηκε το ζήτημα που προκάλεσε αποτυχία του WACK με την επιλογή "Η εργασία απέτυχε να ενεργοποιήσει τη HighVersionLie"

Περισσότεροι πόροι