Partilhar via


Criando e usando um assembly gerenciado (C++)

O próximo tipo de biblioteca que criaremos é um assembly gerenciado.Usar módulos (assemblies) gerenciado é uma ótima maneira de reutilizar o código.Em vez de reimplementação mesmas rotinas em todos os programas que você criar, você escreve uma vez e referenciá-los a partir de aplicativos que precisam da funcionalidade.

Esta explicação passo a passo aborda o seguinte:

  • Criando um novo projeto de biblioteca de classes.

  • Adicionando uma classe a biblioteca de classes.

  • Criação de um aplicativo que faz referência a biblioteca de classes.

  • Usando a funcionalidade da biblioteca de classes no aplicativo de console.

  • Executar o aplicativo.

Pré-requisitos

Este tópico pressupõe que você entenda os fundamentos da linguagem C++.Se apenas começar aprendendo C++, recomendamos que o "Guia de C++ iniciantes", escrito por Herb Schildt, disponível online emhttps://go.Microsoft.com/fwlink/?LinkId=115303.

Para criar um novo projeto de biblioteca de classes

  1. From a Arquivo menu, selecionar Novo e, em seguida, selecionar Projeto ….

  2. Sobre o Tipos de projeto painel, em O Visual C++, selecionar CLR.Isso cria um projeto que atinge o common linguagem tempo de execução.

  3. Sobre o Modelos painel, selecionar biblioteca de classes.

  4. escolher um nome para o projeto such sistema autônomo MathFuncsAssembly e digite-o no Nome campo.Selecione um nome para a solução, sistema autônomo ManagedAssemblies e digite-o no Nome da solução campo.

  5. Pressione OK para criar o projeto.

  6. Por padrão, quando os novos projetos são criados, eles são configurados para usar cabeçalhos pré-compilados.Para desabilitar o cabeçalho pré-compilado, selecionar Propriedades from the Projeto menu.expandir o Propriedades de configuração nó, expandir o C/C++ nó e, em seguida, selecionar Cabeçalhos pré-compilados.Na lista suspensa ao lado do Criar/usar cabeçalho pré-compilado, selecionar Não usar Precompiled cabeçalho.Pressione OK para salvar essas alterações.Para obter mais informações sobre cabeçalhos pré-compilados, consulte Criando arquivos de cabeçalho pré-compilados.

Para adicionar uma classe para a biblioteca de classes

  1. Depois de criar uma nova biblioteca de classes CLR, o assistente gera uma classe simples para você.sistema autônomo nomes de arquivo de cabeçalho e arquivo de fonte será o mesmo nome escolhido para o projeto anteriormente.Neste exemplo, elas são nomeadas MathFuncsAssembly.h e MathFuncsAssembly.cpp.

  2. substituir o código existente no MathFuncsAssembly.h com uma classe simples denominada MyMathFuncsAssembly fazer operações matemáticas comuns, tais sistema autônomo adição, subtração, multiplicação e divisão.O código deve ser semelhante ao seguinte:

    // MathFuncsAssembly.h
    
    using namespace System;
    
    namespace MathFuncs
    {
        public ref class MyMathFuncs
        {
        public:
            // Returns a + b
            static double Add(double a, double b);
    
            // Returns a - b
            static double Subtract(double a, double b);
    
            // Returns a * b
            static double Multiply(double a, double b);
    
            // Returns a / b
            // Throws DivideByZeroException if b is 0
            static double Divide(double a, double b);
        };
    }
    
  3. Implementar a funcionalidade para MyMathFuncs no arquivo de fonte.O código deve ser semelhante ao seguinte:

    // MathFuncsAssembly.cpp
    // compile with: /clr /LD
    
    #include "MathFuncsAssembly.h"
    
    namespace MathFuncs
    {
        double MyMathFuncs::Add(double a, double b)
        {
            return a + b;
        }
    
        double MyMathFuncs::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double MyMathFuncs::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double MyMathFuncs::Divide(double a, double b)
        {
            if (b == 0)
            {
                throw gcnew DivideByZeroException("b cannot be zero!");
            }
    
            return a / b;
        }
    }
    
  4. Compilar a biblioteca de classes selecionando Criar solução from the Compilação menu.Isso cria uma biblioteca de vínculo dinâmico (DLL) que pode ser usada por outros programas.Para obter mais informações sobre DLLs, consulte DLLs.

Para criar um aplicativo que faz referência a biblioteca de classes

  1. Para criar um aplicativo que irá referenciar e usar o classe biblioteca que você acabou de criar, da Arquivo menu, selecionar Novo e, em seguida, selecionar Projeto ….

  2. Sobre o Tipos de projeto painel, em O Visual C++, selecionar CLR.Isso cria um projeto que se destina a Common linguagem tempo de execução.

  3. Sobre o Modelos painel, selecionar Aplicativo de console CLR.

  4. Selecione um nome para o projeto such sistema autônomo MyExecRefsAssembly e digite-o no Nome campo.Próximo a Solução, selecionar Adicionar à solução na lista suspensa.Isso adicionará o novo projeto à solução mesma sistema autônomo a biblioteca de classes.

  5. Pressione OK para criar o projeto.

  6. Por padrão, quando os novos projetos são criados, eles são configurados para usar cabeçalhos pré-compilados.Para desabilitar o cabeçalho pré-compilado, selecionar Propriedades from the Projeto menu.expandir o Propriedades de configuração nó, expandir o C/C++ nó e, em seguida, selecionar Cabeçalhos pré-compilados.Na lista suspensa ao lado do Criar/usar cabeçalho pré-compilado, selecionar Não usar Precompiled cabeçalho.Pressione OK para salvar essas alterações.Para obter mais informações sobre cabeçalhos pré-compilados, consulte Criando arquivos de cabeçalho pré-compilados.

Para usar a funcionalidade da biblioteca de classes no aplicativo de console

  1. Depois de criar um novo aplicativo console CLR, um programa é criado para você simplesmente escreve "Olá mundo" no console.O nome para o arquivo de fonte será o mesmo que o nome escolhido para o projeto acima.Neste exemplo, ele é denominado MyExecRefsAssembly.cpp.

  2. Para usar as rotinas de matemática que foram criadas na biblioteca de classes, você deve referenciá-los.Para fazer isso, selecionar References… from the Projeto menu.Sobre o Páginas de propriedades diálogo caixa, expandir o Propriedades comuns nó e selecionar Referênciase, em seguida, selecionar o Adicionar novo Reference… botão.Para obter mais informações sobre o References… de caixa de diálogo, consulte Estrutura e referências, ComComummon Properties, < ProjectName > Caixa de diálogo de páginas de propriedade.

  3. The Adicionar referência caixa de diálogo é exibida.Esta caixa de diálogo lista todas as bibliotecas que você possa fazer referência.The NET guia lista as bibliotecas que estão incluídas no .NET estrutura.The COM guia lista todos os componentes COM em seu computador.The Projeto guia lista todos os projetos na solução corrente e todas as bibliotecas que eles contêm.Sobre o Projetos guia, selecionar MathFuncsAssembly e, em seguida, clicar OK.Para obter mais informações sobre o Adicionar referência de caixa de diálogo, consulte Caixa de diálogo Add Reference.

    Observação:

    Você pode referenciar um assembly diretamente do arquivo de fonte, incluindo o #using diretiva, sistema autônomo em #using <MathFuncsAssembly.dll>. Para obter mais informações sobre essa diretiva, consulte The # Using Directive.

  4. Agora você pode usar a classe MyMathFuncs neste aplicativo.Em MyExecRefsAssembly.cpp, substitua o Sumário da função de arquivo com o código a seguir:

    // MyExecRefsAssembly.cpp
    // compile with: /clr /FUMathFuncsAssembly.dll
    
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
        double a = 7.4;
        int b = 99;
    
        Console::WriteLine("a + b = {0}",
            MathFuncs::MyMathFuncs::Add(a, b));
        Console::WriteLine("a - b = {0}",
            MathFuncs::MyMathFuncs::Subtract(a, b));
        Console::WriteLine("a * b = {0}",
            MathFuncs::MyMathFuncs::Multiply(a, b));
        Console::WriteLine("a / b = {0}",
            MathFuncs::MyMathFuncs::Divide(a, b));
    
        return 0;
    }
    
  5. Crie o arquivo executável, selecionando Criar solução from the Compilação menu.

Para executar o aplicativo

  1. Verifique se a opção que MyExecRefsAssembly é selecionada sistema autônomo o projeto padrão.From a O gerenciador de soluções, selecionar MyExecRefsAssembly e, em seguida, selecionar conjunto sistema autônomo inicialização Project from the Projeto menu.

  2. Para executar o projeto, selecionar Iniciar sem depuração from the Depurar menu.A saída deve ter esta aparência:

    a + b = 106.4
    a - b = -91.6
    a * b = 732.6
    a / b = 0.0747474747474748
    

Próximas etapas

Anterior:Criando e usando uma biblioteca estático (C++) | Próxima:O que fazer Avançar (C++)

Consulte também

Tarefas

Tour guiado do Visual C++

Outros recursos

Assemblies em Common Language Runtime

Domínios de aplicativo