Modèle de projet de bibliothèque de classes WRL
Si vous utilisez Visual Studio pour écrire un projet Bibliothèque de modèles Windows Runtime C++ (WRL), vous pouvez simplifier considérablement votre tâche en téléchargeant le modèle de projet Bibliothèque de classes WRL.
Notes
Si vous devez mettre à jour manuellement les paramètres d'un projet existant, consultez DLL (C++/CX).
Téléchargez le modèle de projet WRL.
Visual Studio ne fournit pas de modèle pour les projets WRL. Voici comment télécharger un modèle de projet qui crée une bibliothèque de classes de base pour les applications Windows Store avec WRL.
Pour télécharger le modèle de projet WRL.
Dans la barre de menus, choisissez Fichier, Nouveau projet.
Dans le volet gauche de la boîte de dialogue Nouveau projet, sélectionnez En ligne, puis Modèles.
Dans la zone Recherche de modèles en ligne dans l'angle supérieur droit, tapez Bibliothèque de classe WRL. Lorsque le modèle s'affiche dans les résultats de la recherche, cliquez le bouton OK.
Dans la boîte de dialogue Télécharger et installer, si vous êtes d'accord avec les termes de licence, cliquez le bouton Installer.
Une fois que le modèle est installé, créez un projet en sélectionnant Fichier, Nouveau projet, puis en sélectionnant le modèle WRLClassLibrary. Le projet crée une DLL.
Exemples qui utilisent le modèle de projet
Lisez Procédure pas à pas : création d'un composant Windows Runtime de base à l'aide de WRL pour obtenir un exemple utilisant ce modèle pour créer un composant de Windows Runtime.
Ce que le modèle de projet fournit
Le modèle du projet fournit:
un fichier .idl indique les attributs MIDL d'une interface de base de son implémentation de la classe. Voici un exemple :
import "inspectable.idl"; import "Windows.Foundation.idl"; #define COMPONENT_VERSION 1.0 namespace WRLClassLibrary { interface IWinRTClass; runtimeclass WinRTClass; [uuid(89656677-8679-477c-aff1-f724c64b70f3), version(COMPONENT_VERSION), exclusiveto(WinRTClass)] interface IWinRTClass : IInspectable { } [version(COMPONENT_VERSION), activatable(COMPONENT_VERSION)] runtimeclass WinRTClass { [default] interface IWinRTClass; } }
un fichier .cpp qui définit l'implémentation de la classe. Voici un exemple :
#include "pch.h" #include "WRLClassLibrary_h.h" #include <wrl.h> using namespace Microsoft::WRL; using namespace Windows::Foundation; namespace ABI { namespace WRLClassLibrary { class WinRTClass: public RuntimeClass<IWinRTClass> { InspectableClass(L"WRLClassLibrary.WinRTClass", BaseTrust) public: WinRTClass() { } }; ActivatableClass(WinRTClass); } }
La classe de baseRuntimeClass vous aide à gérer la référence globale de tous les objets du module et déclare les méthodes des interfacesIUnknown et d'IInspectable. La macro InspectableClass implémente IUnknown et IInspectable. La macro ActivatableClass crée une classe de fabrique qui crée les instances de la classe.
un fichier nommé module.cpp qui définit les exportations de bibliothèque DllMain, DllCanUnloadNow, DllGetActivationFactory, et DllGetClassObject.