Bibliothèques statiques (C++/CX)

Une bibliothèque statique utilisée dans une application plateforme Windows universelle (UWP) peut contenir du code C++ standard ISO, y compris des types STL, et également des appels aux API Win32 qui ne sont pas exclues de la plateforme d’application Windows Runtime. Une bibliothèque statique consomme des composants Windows Runtime et peut créer des composants Windows Runtime avec certaines restrictions.

Création de bibliothèques statiques

Les instructions de création d’un projet varient en fonction de la version de Visual Studio que vous avez installée. Pour consulter la documentation sur votre version préférée de Visual Studio, utilisez le contrôle de sélection de Version . Il se trouve en haut de la table des matières de cette page.

Pour créer une bibliothèque statique UWP dans Visual Studio

  1. Dans la barre de menus, choisissez Fichier>nouveau>projet pour ouvrir la boîte de dialogue Créer un projet.

  2. En haut de la boîte de dialogue, définissez Langue sur C++, définissez Plateforme sur Windows et définissez le type de projet sur UWP.

  3. Dans la liste filtrée des types de projets, choisissez Bibliothèque statique (Windows universel - C++/CX), puis Choisissez Suivant. Dans la page suivante, donnez un nom au projet et spécifiez l’emplacement du projet si vous le souhaitez.

  4. Choisissez le bouton Créer pour créer le projet.

Pour créer une bibliothèque statique UWP dans Visual Studio 2017 ou Visual Studio 2015

  1. Dans la barre de menus, choisissez Fichier>Nouveau>Projet. Sous Visual C++>Windows Universal, choisissez Bibliothèque statique (Windows universel).

  2. Dans l' Explorateur de solutions, ouvrez le menu contextuel du projet et choisissez Propriétés. Dans la boîte de dialogue Propriétés, dans la page Propriétés>de configuration C/C++, définissez Utiliser l’extensionWindows Runtime sur Oui (/ZW).

Lorsque vous compilez une nouvelle bibliothèque statique, si vous effectuez un appel à une API Win32 exclue pour les applications UWP, le compilateur génère l’erreur C3861, « Identificateur introuvable ». Pour rechercher une autre méthode prise en charge pour Windows Runtime, consultez Alternatives aux API Windows dans les applications UWP.

Si vous ajoutez un projet de bibliothèque statique C++ à une solution d’application UWP, vous devrez peut-être mettre à jour les paramètres de propriété du projet de bibliothèque afin que la propriété de prise en charge UWP soit définie sur Oui. Sans ce paramètre, le code génère et lie, mais une erreur se produit lorsque vous tentez de vérifier l’application pour le Microsoft Store. La bibliothèque statique doit être compilée avec les mêmes paramètres de compilateur que ceux du projet qui la consomme.

Si vous consommez une bibliothèque statique qui crée des classes ref publiques, des classes d'interface publiques ou des classes de valeur publiques, l'éditeur de liens déclenche l'avertissement suivant :

avertissement LNK4264 : archivage du fichier objet compilé avec /ZW dans une bibliothèque statique ; notez que lors de la création de types Windows Runtime, il n’est pas recommandé de lier avec une bibliothèque statique qui contient des métadonnées Windows Runtime.

Vous pouvez ignorer en toute sécurité l’avertissement uniquement si la bibliothèque statique ne produit pas de composants Windows Runtime qui sont consommés en dehors de la bibliothèque elle-même. Si la bibliothèque ne consomme pas de composant qu’elle définit, l’éditeur de liens peut optimiser l’implémentation même si les métadonnées publiques contiennent les informations de type. En d'autres termes, les composants publics d'une bibliothèque statique sont compilés mais ne sont pas activés au moment de l'exécution. Pour cette raison, tout composant Windows Runtime destiné à être consommé par d’autres composants ou applications doit être implémenté dans une bibliothèque de liens dynamiques (DLL).

Voir aussi

Thread et marshaling