Partilhar via


Modelo de projeto de biblioteca de classes WRL

Se você usar o Visual Studio para gravar um projeto de Biblioteca em Tempo de Execução C++ do Tempo de Execução do Windows (WRL), você pode simplificar muito sua tarefa baixando o modelo de projeto de biblioteca de classes de WRL.

Dica

Se for necessário atualizar manualmente as configurações de um projeto existente, consulte DLL (C++/CX).

Baixe o modelo de projeto de WRL

Visual Studio não fornece um modelo para projetos de WRL . Veja como baixar um modelo de projeto do que cria uma biblioteca básica da classe para aplicativos de Windows Store com WRL.

Para baixar o modelo de projeto de WRL

  1. Na barra de menu, escolha Arquivo, Novo Projeto.

  2. No painel esquerdo da caixa de diálogo de Novo Projeto , Online, selecione e selecione Modelos.

  3. Na caixa de Pesquisar modelos online no canto superior direito, digite Biblioteca de classes de WRL. Quando o modelo é exibido nos resultados da pesquisa, escolha o botão de OK .

  4. Na caixa de diálogo de Fazer o download e Instalar , se você concordar com os termos de licença, escolha o botão de Instalar .

  5. Depois que as instalações do modelo, criará um projeto escolhendo Arquivo, Novo Projeto, e selecione o modelo de WRLClassLibrary . O projeto cria um DLL.

Exemplos que usam o modelo de projeto

Ler Instruções passo a passo: criando um componente básico de Tempo de Execução do Windows com WRL para obter um exemplo que usa esse modelo para criar um componente de Tempo de Execução do Windows .

O que o modelo de projeto fornece

O modelo de projeto fornece:

  • um arquivo de .idl que declare MIDL atribui uma interface básica para sua implementação da classe. Veja um exemplo.

    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;
        }
    }
    
  • um arquivo .cpp que define a implementação da classe. Veja um exemplo.

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

    Ajuda da classe base de RuntimeClass gerenciam a referência global de todos os objetos no módulo e declaram os métodos de IUnknown e IInspectable interfaces. A macro de InspectableClass implementa IUnknown e IInspectable. A macro de ActivatableClass cria uma fábrica da classe que cria instâncias da classe.

  • um arquivo denominado module.cpp que define as DllMainexportações, DllCanUnloadNow, DllGetActivationFactory, e DllGetClassObjectde biblioteca.

Consulte também

Conceitos

Biblioteca de Modelos C++ do Tempo de Execução do Windows (WRL)