Condividi tramite


Modello di progetto di libreria di classi di WRL

Se si utilizza Visual Studio per scrivere un progetto Libreria di modelli di Windows Runtime C++ (WRL), è possibile semplificare notevolmente l'attività scaricando il modello di progetto Libreria di classi di WRL.

[!NOTA]

Se è necessario aggiornare manualmente le impostazioni di progetto per un progetto esistente, vedere DLL (C++/CX).

Scaricare il modello WRL Project.

Visual Studio non fornisce un modello per i progetti WRL.Di seguito viene illustrato come scaricare un modello di progetto che crea una libreria di classi base per le applicazioni di Windows Store con WRL.

Per scaricare il Modello WRL Project.

  1. Nella barra dei menu, scegliere File, Nuovo progetto.

  2. Nel riquadro sinistro della finestra di dialogo Nuovo progetto, Onlinequindi selezionare Modelli.

  3. Nella casella Cerca modelli online nell'angolo in alto a destra, digitare Libreria di classi WRL.Quando il modello viene visualizzato nei risultati della ricerca, scegliere il pulsante OK.

  4. Nella finestra di dialogo Scarica e installa, se acconsentite ai termini licenza, scegliere il pulsante Installa.

  5. Dopo che il modello si installa, creare un progetto scegliendo File, Nuovo progettoquindi selezionare il modello WRLClassLibrary.Il progetto crea una DLL.

Esempi che utilizzano il modello di progetto

Leggere Procedura dettagliata: creazione di un componente Windows Runtime di base mediante WRL per un esempio che utilizza questo modello per creare un componente Windows Runtime.

Il modello di progetto offre

Il modello di progetto offre:

  • un file IDL che dichiara il MIDL attributi per un'interfaccia di base l'implementazione della classe.Di seguito è riportato un esempio.

    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 file CPP che definisce l'implementazione della classe.Di seguito è riportato un esempio.

    #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);
        }
    }
    

    Le guide della classe base di RuntimeClass gestiscono il riferimento complessivo di tutti gli oggetti nel modulo e dichiara i metodi delle interfacce di IInspectable e di IUnknown.La macro di InspectableClass implementa IUnknown e IInspectable.La macro di ActivatableClass crea una class factory che crea istanze della classe.

  • un file denominato module.cpp che definisce le esportazioni DllMain, DllCanUnloadNow, DllGetActivationFactorye DllGetClassObjectdi libreria.

Vedere anche

Concetti

Libreria di modelli di Windows Runtime C++ (WRL)