Kit de développement logiciel (SDK) Windows

Le 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, la version 22H2 et les 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 découplés du système d’exploitation et mis à la disposition des 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 Windows 11 et de bas niveau pour Windows 10, version 1809.

Prise en main

Vous pouvez obtenir le 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 : mai 2023

Configuration système 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 zippé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 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

Windows 11, version 22H2, build 10.0.22621.1778

Mise à jour 10.0.22621.1778. Les fonctionnalités mises en surbrillance sont les suivantes :

  • Les API WindowTabManager permettent aux applications avec des interfaces à onglets de fournir des informations sur les onglets ouverts à l’interpréteur de commandes Windows.
  • Mises à jour aux API HumanPresence pour améliorer la facilité d’utilisation et ajouter de nouveaux paramètres pour les capteurs qui prennent en charge les fonctionnalités de présence humaine.
  • Les API RemoteDesktop permettent aux applications de basculer entre un bureau distant et un bureau local.
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 vers OneCoreUAP.lib en remplacement.

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

  • Déplacement de 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 les dernières api Windows Runtime prise en charge à vos bibliothèques et applications .NET Framework 4.5+ et .NET Core 3.0+. Pour accéder au pack d’API Windows 10 WinRT, 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 respecte 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 API prises en charge dans le Kit de certification des applications et le Windows Store. S’il existe des API dans la liste prise en charge 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. Recherchez d’autres mises à jour pour les 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 est lu en tant que 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 est lu en tant que fichier UTF-16LE. Sinon, elle sera lue à l’aide de la page de codes active (CP_ACP).
    • Évite maintenant 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 fichier 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 choisir arbitrairement l’un ou l’autre).
  • Mises à jour du préprocesseur de trace 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 seront lus en tant qu’Unicode. Les fichiers d’entrée qui ne commencent pas par une nomenclature sont lus à l’aide de la page de codes 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 codes 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 un traitement en Unicode et convertit le texte de sortie vers 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 codés 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 codes actuelle. Dans les cas où cela pose problème, envisagez de convertir les fichiers d’entrée en UTF-8 (avec nomenclature) 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 fichier binaire, les assistances TraceLoggingProvider.h respectent désormais la définition de TLG_EVENT_WRITE_TRANSFER dans chaque fichier .cpp au lieu de choisir 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 sur la signature Device Guard.

  • Les en-têtes du 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éprocessor, introduit dans VS 2019 v16.6).

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

  • Lors de la génération 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