DLL (C++/CX)
Vous pouvez utiliser Visual Studio pour créer une DLL Win32 standard ou une DLL de composant Windows Runtime qui peut être consommée par des applications plateforme Windows universelle (UWP). Une DLL standard créée à l’aide d’une version de Visual Studio ou du compilateur Microsoft C++ antérieur à Visual Studio 2012 peut ne pas se charger correctement dans une application UWP et ne pas réussir le test de vérification de l’application dans le Microsoft Store.
DLL des composants Windows Runtime
Dans presque tous les cas, lorsque vous souhaitez créer une DLL à utiliser dans une application UWP, créez-la en tant que composant Windows Runtime à l’aide du modèle de projet de ce nom. Vous pouvez créer un projet de composant Windows Runtime pour les DLL qui ont des types Windows Runtime publics ou privés. Un composant Windows Runtime est accessible à partir d’applications écrites dans n’importe quel langage compatible Windows Runtime. Par défaut, les paramètres du compilateur pour un projet de composant Windows Runtime utilisent le commutateur /ZW . Un fichier .winmd doit avoir le même nom que l'espace de noms racine. Par exemple, une classe nommée A.B.C.MyClass peut être instanciée uniquement si elle est définie dans un fichier de métadonnées nommé A.winmd, A.B.winmd ou A.B.C.winmd. Il n'est pas requis que le nom de la DLL corresponde au nom du fichier .winmd.
Pour plus d’informations, consultez Création de composants Windows Runtime en C++.
Pour référencer un binaire de composant Windows Runtime tiers dans votre projet
Ouvrez le menu contextuel du projet qui utilisera la DLL puis choisissez Propriétés. Dans la page Propriétés communes , choisissez le bouton Ajouter une nouvelle référence .
Un composant Windows Runtime se compose d’un fichier DLL et d’un fichier .winmd qui contient les métadonnées. En général, ces fichiers se trouvent dans le même répertoire. Dans le volet gauche de la boîte de dialogue Ajouter une référence , choisissez le bouton Parcourir puis accédez à l'emplacement de la DLL et de son fichier .winmd. Pour plus d’informations, consultez Kits de développement logiciel (SDK) d’extension.
DLL standard
Vous pouvez créer une DLL standard pour le code C++ qui ne consomme pas ou ne produit pas de types Windows Runtime publics et qui l’utilise à partir d’une application UWP. Utilisez le type de projet Bibliothèque de liens dynamiques (DLL) lorsque vous souhaitez simplement migrer une DLL existante à compiler dans cette version de Visual Studio, mais pas convertir le code en projet de composant Windows Runtime. En utilisant la procédure suivante, la DLL sera déployée à côté de l'exécutable de votre application dans le package .appx.
Pour créer une DLL standard dans Visual Studio
Dans la barre de menus, choisissez Fichier, Nouveau, Projet, puis sélectionnez le modèle DLL (Dynamic Link Library).
Entrez un nom pour le projet, puis choisissez le bouton OK .
Ajoutez le code. Veillez à utiliser
__declspec(dllexport)
pour les fonctions que vous prévoyez d'exporter, par exemple__declspec(dllexport) Add(int I, in j);
Ajoutez
#include winapifamily.h
pour inclure ce fichier d’en-tête à partir du Kit de développement logiciel (SDK) Windows pour les applications UWP et définissez la macroWINAPI_FAMILY=WINAPI_PARTITION_APP
.
Référencement d'un projet DLL standard à partir de la même solution
Ouvrez le menu contextuel du projet qui utilisera la DLL puis choisissez Propriétés. Dans la page Propriétés communes , choisissez le bouton Ajouter une nouvelle référence .
Dans le volet gauche, sélectionnez Solution, puis activez la case à cocher appropriée dans le volet droit.
Dans vos fichiers de code source, ajoutez une instruction
#include
pour le fichier d'en-tête de DLL selon vos besoins.
Référencement d'un fichier binaire de DLL standard
Copiez le fichier DLL, le fichier .lib et le fichier d'en-tête, puis collez-les dans un emplacement connu, par exemple dans votre dossier de projet actif.
Ouvrez le menu contextuel du projet qui utilisera la DLL puis choisissez Propriétés. Dans la page Propriétés de configuration, Éditeur de liens, Entrée , ajoutez le fichier .lib comme dépendance.
Dans vos fichiers de code source, ajoutez une instruction
#include
pour le fichier d'en-tête de DLL selon vos besoins.
Pour migrer une DLL Win32 existante pour la compatibilité des applications UWP
Créez un projet du type DLL (Windows universel) et ajoutez-y votre code source existant.
Ajoutez
#include winapifamily.h
pour inclure ce fichier d’en-tête à partir du Kit de développement logiciel (SDK) Windows pour les applications UWP et définissez la macroWINAPI_FAMILY=WINAPI_PARTITION_APP
.Dans vos fichiers de code source, ajoutez une instruction
#include
pour le fichier d'en-tête de DLL selon vos besoins.