Kit de développement logiciel (SDK) Windows

Le Kit de développement logiciel (SDK) Windows (10.0.22621) pour Windows 11, version 22H2 fournit les derniers en-têtes, bibliothèques, métadonnées et outils pour la création d’applications Windows. Utilisez ce KIT de développement logiciel (SDK) pour générer des applications plateforme Windows universelle (UWP) et Win32 pour Windows 11, version 22H2 et versions antérieures de Windows.

Conseil

Kit de développement logiciel (SDK) pour application Windows
Le SDK d'application Windows fournit un ensemble unifié d’API et d’outils qui sont dissociés du système d’exploitation et distribués aux développeurs via des packages NuGet. Ces API et outils peuvent être utilisés de manière cohérente par n’importe quelle application de bureau sur Windows 11 et au niveau inférieur pour Windows 10, version 1809.

Prise en main

Vous pouvez obtenir le Kit de développement logiciel (SDK) Windows de deux façons : installez-le à partir de cette page en sélectionnant le lien de téléchargement ou en sélectionnant « Windows 11 SDK (10.0.22621.0) » dans les composants facultatifs du programme d’installation de Visual Studio 2022. Avant d’installer ce SDK :

Dernière mise à jour : 4 octobre 2021

Configuration requise

La configuration minimale requise pour le SDK Windows est la suivante :

Systèmes d’exploitation pris en charge

  • Windows 10 version 1507 ou ultérieure : Famille, Professionnel, Éducation et Entreprise (LTSB et S ne sont pas pris en charge pour UWP)
  • Windows Server 2022, Windows Server 2019, Windows Server 2016 et Windows Server 2012 R2 (ligne de commande uniquement)
  • Windows 8.1
  • Windows 7 SP1

(Tous les outils ne sont pas pris en charge sur les systèmes d’exploitation antérieurs.)

Configuration matérielle requise

  • Processeur 1,6 GHz minimum
  • 1 Go de mémoire RAM
  • 4 Go d’espace disque disponible

Exigences supplémentaires

L’installation sur Windows 8.1 et les systèmes d’exploitation antérieurs nécessite une mise à jour pour le runtime C universel dans Windows. Pour effectuer l’installation via Windows Update, veillez à installer les derniers correctifs et mises à jour Microsoft Update recommandés avant d’installer le SDK Windows.

Exemples

Les exemples d’applications Windows sont désormais disponibles via GitHub. Vous pouvez parcourir le code sur GitHub, cloner une copie personnelle du dépôt à partir de Git ou télécharger une archive compressée de tous les exemples. Vos commentaires sont les bienvenus, n’hésitez pas à ouvrir un ticket dans le référentiel en cas de problème ou de question. Ces exemples sont conçus pour s’exécuter sur tous les appareils (de bureau, mobiles et futurs) qui prennent en charge la plateforme Windows universelle (UWP).

Versions précédentes du Kit de développement logiciel (SDK)

Les Kits de développement logiciel (SDK) et émulateurs précédemment publiés sont accessibles sur la page Archives.

API Light Up

Lorsque vous utilisez de nouvelles API, envisagez d’écrire votre application pour qu’elle soit adaptative afin qu’elle s’exécute correctement sur le plus grand nombre d’appareils Windows. Une application adaptative « s’allume » avec de nouvelles fonctionnalités partout où les appareils et la version de Windows les prennent en charge, mais n’offre sinon que les fonctionnalités disponibles sur la version de la plateforme détectée. Pour plus d’informations sur l’implémentation, consultez l’article Code adaptatif version.

Notes de publication et problèmes connus

Kit de développement logiciel (SDK) Windows pour Windows 11, version 22H2
  • Mise à jour de maintenance 10.0.22621.755. Inclut la prise en charge d’ARM64 pour la version VS 17.4
Kit de développement logiciel (SDK) Windows 10, version 2104
  • Suppression de api-ms-win-net-isolation-l1-1-0.lib. Les applications qui étaient liées à api-ms-win-net-isolation-l1-1-0.lib peuvent basculer t OneCoreUAP.lib en remplacement.

  • Suppression de irprops.lib. Les applications qui étaient liées à irprops.lib peuvent basculer vers bthprops.lib comme remplacement de la liste déroulante.

  • Déplacement de la balise ENUM tagServerSelection de wuapicommon.h vers wupai.h et suppression de l’en-tête. Si vous souhaitez utiliser le tagServerSelection ENUM, vous devez inclure wuapi.h ou wuapi.idl.

  • Le pack d’API winRT Windows 10 vous permet d’ajouter la prise en charge des API Windows Runtime les plus récentes à vos bibliothèques et applications .NET Framework 4.5+ et .NET Core 3.0+. Pour accéder au pack d’API WinRT Windows 10, consultez le package nuget Microsoft.Windows.SDK.Contracts.

  • La famille de fonctions printf est désormais conforme aux règles d’arrondi IEEE 754 lors de l’impression de nombres à virgule flottante représentant exactement et respectera le mode d’arrondi demandé via les appels à fesetround. Le comportement hérité est disponible lors de la liaison avec legacy_stdio_float_rounding.obj.

  • Kit de certification des applications Windows. Plusieurs nouvelles API ont été ajoutées à la liste DES API prises en charge dans le Kit de certification d’application et le Windows Store. Si la liste prise en charge contient des API qui apparaissent grisées ou désactivées dans Visual Studio, vous pouvez apporter une petite modification à votre fichier source pour y accéder. Pour plus d’informations, consultez ce problème connu. Trouvez d’autres mises à jour des tests.

  • Mises à jour du compilateur de messages (mc.exe) :

    • Détecte maintenant la marque d’ordre d’octet Unicode dans les fichiers .mc. Si le fichier .mc commence par une nomenclature UTF-8, il sera lu sous la forme d’un fichier UTF-8. Sinon, si elle commence par une nomenclature UTF-16LE, elle sera lue en tant que fichier UTF-16LE. Si le paramètre -u a été spécifié, il sera lu sous la forme d’un fichier UTF-16LE. Sinon, il sera lu à l’aide de la page de code active (CP_ACP).
    • Évite désormais les problèmes de règle à une définition (ODR) dans les assistances ETW C/C++ générées par MC, causés par des macros de configuration en conflit (par exemple, lorsque deux fichiers .cpp avec des définitions de MCGEN_EVENTWRITETRANSFER en conflit sont liés dans le même binaire, les assistances ETW générées par MC respectent désormais la définition de MCGEN_EVENTWRITETRANSFER dans chaque fichier .cpp au lieu de sélectionner arbitrairement l’un ou l’autre).
  • Mises à jour du préprocesseur de traces Windows (tracewpp.exe) :

    • Prend en charge les fichiers d’entrée Unicode (.ini, .tpl et code source). Les fichiers d’entrée commençant par une marque d’ordre d’octet (BOM) UTF-8 ou UTF-16 sont lus en unicode. Les fichiers d’entrée qui ne commencent pas par une nomenclature sont lus à l’aide de la page de code active (CP_ACP). Pour la compatibilité descendante, si le paramètre de ligne de commande -UnicodeIgnore est spécifié, les fichiers commençant par une nomenclature UTF-16 sont traités comme vides.
    • Prend en charge les fichiers de sortie Unicode (.tmh). Par défaut, les fichiers de sortie sont encodés à l’aide de la page de code active (CP_ACP). Utilisez les paramètres de ligne de commande -cp:UTF-8 ou -cp:UTF-16 pour générer des fichiers de sortie Unicode.
    • Changement de comportement : tracewpp convertit désormais tout le texte d’entrée en Unicode, effectue le traitement en Unicode et convertit le texte de sortie dans l’encodage de sortie spécifié. Les versions antérieures de tracewpp évitaient les conversions Unicode et effectuaient un traitement de texte en supposant un jeu de caractères sur un octet. Cela peut entraîner des changements de comportement dans les cas où les fichiers d’entrée ne sont pas conformes à la page de code actuelle. En cas de problème, envisagez de convertir les fichiers d’entrée en UTF-8 (avec boM) et/ou d’utiliser le paramètre de ligne de commande -cp:UTF-8 pour éviter toute ambiguïté d’encodage.
  • TraceLoggingProvider.h met à jour :

    • Évite les problèmes de règle à une définition (ODR) causés par des macros de configuration en conflit (par exemple, lorsque deux fichiers .cpp avec des définitions de TLG_EVENT_WRITE_TRANSFER en conflit sont liés dans le même binaire, les assistances TraceLoggingProvider.h respectent désormais la définition de TLG_EVENT_WRITE_TRANSFER dans chaque fichier .cpp au lieu de sélectionner arbitrairement l’un ou l’autre).
    • Dans le code C++, la macro TraceLoggingWrite a été mise à jour pour permettre un meilleur partage de code entre des événements similaires à l’aide de modèles variadiques.
  • Signature de vos applications. La signature Device Guard est une fonctionnalité Device Guard disponible dans Microsoft Store pour Entreprises et Éducation, qui permet aux entreprises de garantir que chaque application provient d’une source approuvée. Consultez la documentation relative à la signature Device Guard.

  • Les en-têtes du KIT de développement logiciel (SDK) ont été mis à jour pour résoudre les erreurs lors de la compilation à l’aide du préprocesseur C conforme à la norme dans le compilateur MSVC cl.exe (/Zc:préprocesseur, introduit dans VS 2019 v16.6).

  • Correction : « GdiplusTypes.h ne se compile pas avec NOMINMAX ». Consultez Commentaires visual Studio.

  • Lorsque vous générez avec /std:c11 ou /std:c17, vous obtenez maintenant :

    • C99 tgmath.h
    • C11 static_assert dans assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM pour Windows v11 ciblant ARM64 n’est pas compatible avec la dernière version de winnt.h

    • Pour contourner ce problème, utilisez la version précédente du Kit de développement logiciel (SDK) Windows 10 (build 19041) ou clang/LLVM pour Windows v10 lorsque vous ciblez des plateformes ARM64
  • DirectXMath (y compris la version 3.16 de cette version) n’est pas compatible avec Clang/LLVM pour Windows sur ARM64.

  • La casse de certains fichiers d’en-tête a été modifiée, afin de les normaliser pour les systèmes de fichiers respectant la casse :

    • OAIdl.h, ObjIdl.h, ObjIdlbase.h, OCIdl.h, Ole2.h, OleAuto.h et OleCtl.h ont tous été en minuscules.
    • Pour les builds Clang/LLVM pour Windows, pour prendre en charge à la fois l’ancienne version et la dernière Windows 10 SDK sans avertissements, ajoutez -Wno-nonportable-system-include-path à l’interface CLI ou aux #pragma suivantes dans la source :

    #ifdef __clang__

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

    #endif

Windows 10 SDK, mise à jour de maintenance version 2004 (publiée le 16/12/2020)

Cette version contient les fichiers suivants. Si vous rencontrez ces problèmes, nous vous recommandons de mettre à jour votre version du Kit de développement logiciel (SDK) dès que possible pour les éviter :

  • Résolution des incidents imprévisibles et difficiles à diagnostiquer lors de la liaison des bibliothèques parapluie et des bibliothèques de système d’exploitation natives (par exemple, onecoreuap.lib et kernel32.lib)
  • Problème résolu qui empêchait AppVerifier de fonctionner
  • Résolution du problème qui entraînait l’échec de WACK avec « La tâche n’a pas pu activer HighVersionLie »

Plus de ressources