Demonstra Passo a passo: Criando e usando uma biblioteca estática (C++)

The next type of library we will create is a static library (LIB). O uso de bibliotecas estáticas é uma ótima maneira de reutilizar o código. Rather than re-implementing the same routines in every program that you create, you write them one time and reference them from applications that need the functionality.

Esta explicação passo a passo mostra como realizar as seguintes tarefas:

  • Crie um projeto de biblioteca estática.

  • Adicione uma classe para a biblioteca estática.

  • Crie um aplicativo de console que faz referência a biblioteca estática.

  • Use a funcionalidade da biblioteca estática no aplicativo.

  • Run the application.

Pré-requisitos

This topic assumes that you understand the fundamentals of the C++ language. Se apenas começar C++ de aprendizagem, recomendamos que consulte este tutorial o Biblioteca MSDN: Camada um: Guia para iniciantes do C++.

Para criar um projeto de biblioteca estática

  1. Do arquivo menu, selecione nova e projeto.

  2. Sobre o tipos de projeto painel, em Visual C++, selecione Win32.

  3. Sobre o modelos de painel, selecione Aplicativo de Console do Win32.

  4. Escolha um nome para o projeto, como, por exemplo, MathFuncsLib e inseri-la na nome campo. Escolha um nome para a solução, como, por exemplo, StaticLibrary e inseri-la na Nome da solução campo.

  5. Clique em OK para iniciar o Assistente de aplicativo Win32. No Visão geral página da Assistente de aplicativo Win32 caixa de diálogo, clique em próximo.

  6. No As configurações do aplicativo página da Assistente de aplicativo Win32, em tipo de aplicativo, selecione biblioteca estática.

  7. No Configurações do aplicativo página da Assistente de aplicativo Win32, em Opções adicionais, limpar o cabeçalho pré-compilado caixa de seleção.

  8. Clique em Concluir para criar o projeto.

Para adicionar uma classe para a biblioteca estática

  1. Para criar um arquivo de cabeçalho para uma nova classe, a partir de projeto menu, selecione Add New Item. O Add New Item caixa de diálogo será exibida. Do categorias painel, em Visual C++, selecione código. Do modelos de painel, selecione O arquivo de cabeçalho (. h). Escolha um nome para o arquivo de cabeçalho, como, por exemplo, MathFuncsLib.h e, em seguida, clique em Add. Um arquivo em branco será exibido.

  2. Adicione uma classe chamada MyMathFuncs para fazer operações matemáticas comuns, como, por exemplo, adição, subtração, multiplicação e divisão. Para fazer isso, substitua o conteúdo de MathFuncsLib.h com o código a seguir.

    // MathFuncsLib.h
    
    namespace MathFuncs
    {
        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. Para criar um arquivo de origem para uma nova classe, a partir de projeto menu, selecione Add New Item. O Add New Item caixa de diálogo será exibida. Do categorias painel, em Visual C++, selecione código. Do modelos de painel, selecione Arquivo do C++ (CPP). Escolha um nome para o arquivo de origem, como, por exemplo, MathFuncsLib.cpp e, em seguida, clique em Add. Um arquivo em branco será exibido.

  4. Implemente a funcionalidade para MyMathFuncs no arquivo de origem. Para fazer isso, substitua o conteúdo de MathFuncsLib.cpp com o código a seguir.

    // MathFuncsLib.cpp
    // compile with: /c /EHsc
    // post-build command: lib MathFuncsLib.obj
    
    #include "MathFuncsLib.h"
    
    #include <stdexcept>
    
    using namespace std;
    
    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 new invalid_argument("b cannot be zero!");
            }
    
            return a / b;
        }
    }
    
  5. Para construir o projeto em uma biblioteca estática, a partir de projeto menu, selecionePropriedades. No painel esquerdo, em Propriedades de configuração, selecione Geral. No painel à direita, altere o O tipo de configuração para Biblioteca estática (. lib). Clique em OK para salvar as alterações.

    ObservaçãoObservação

    Quando você constrói a partir da linha de comando, você deve construir o programa em duas etapas. Primeiro, compilar o código usando Cl.exe com o /c opção de compilador (cl /c /EHsc MathFuncsLib.cpp). Isso criará um arquivo de objeto é denominado MathFuncsLib.obj. For more information, see /c (compilar sem vinculá-la). Segundo, vincular o código usando o Gerenciador de biblioteca Lib.exe (lib MathFuncsLib.obj). Isso criará a biblioteca estática, MathFuncsLib.lib. Para obter mais informações sobre o Gerenciador de bibliotecas, consulte Referência LIB.

  6. Compilar a biblioteca estática selecionando Build Solution da Build menu. Isso cria uma biblioteca estática que pode ser usada por outros programas.

Para criar um aplicativo de console que faz referência a biblioteca estática

  1. Para criar um aplicativo que irá referenciar e usar a biblioteca estática que acabou de ser criada, da arquivo menu, selecione nova e projeto.

  2. Sobre o tipos de projeto painel, em Visual C++, selecione Win32.

  3. Sobre o modelos de painel, selecione Aplicativo de Console do Win32.

  4. Escolha um nome para o projeto, como, por exemplo, MyExecRefsLib e digite-o nome campo. Ao lado de solução, selecione Adicionar a solução da caixa de listagem drop-down. Isso adicionará o novo projeto para a mesma solução, como a biblioteca estática.

  5. Clique em OK para iniciar o Assistente de aplicativo Win32. No Visão geral página da Assistente de aplicativo Win32 caixa de diálogo, clique em próximo.

  6. No As configurações do aplicativo página do Assistente de aplicativo Win32, em tipo de aplicativo, selecione aplicativo de Console.

  7. No Configurações do aplicativo página do Assistente de aplicativo Win32, em Opções adicionais, clear cabeçalho pré-compilado.

  8. Clique em Concluir para criar o projeto.

Para usar a funcionalidade da biblioteca estática no aplicativo

  1. Depois de criar um aplicativo de console, o assistente cria um programa vazio para você. O nome do arquivo de origem será o mesmo nome que você escolheu anteriormente para o projeto. Neste exemplo, ele é denominado MyExecRefsLib.cpp.

  2. Você deve fazer referência a biblioteca estática criados para usar suas rotinas de matemática. Para fazer isso, selecione referências partir do projeto menu. Partir de MyExecRefsLib Property Pages caixa de diálogo caixa, expanda o Propriedades comuns nó e clique Adicionar nova referência. Para obter mais informações sobre o referências caixa de diálogo, consulte Estrutura e referências, propriedades comuns, <Projectname> Caixa de diálogo de páginas de propriedade.

  3. The Add Reference dialog box is displayed. O projetos guia lista os projetos na solução atual e todas as bibliotecas que você pode fazer referência. Sobre o projetos , selecione MathFuncsLib. Click OK.

  4. Para fazer referência no arquivo de cabeçalho de MathFuncsLib.h, você deve modificar o caminho de diretórios de inclusão. No MyExecRefsLib Property Pages diálogo caixa, expanda o Propriedades de configuração nó, expanda o C/C++ nó e selecione Geral. No Os diretórios adicionais incluem o valor de propriedade, digite o caminho do diretório MathFuncsLib ou procurá-lo.

    Para procurar o caminho de diretório, na caixa de listagem drop-down de valor da propriedade, clique em Editar. No Os diretórios adicionais incluem caixa de diálogo, na caixa de texto, selecione uma linha em branco e, em seguida, clique no botão de reticências () no final da linha. No Selecionar diretório diálogo Selecione o diretório MathFuncsLib e, em seguida, clique em Selecionar pasta para salvar a sua seleção e fechar a caixa de diálogo. No Os diretórios adicionais incluem caixa de diálogo, clique em OK.

  5. Agora você pode usar a classe MyMathFuncs neste aplicativo. Para fazer isso, substitua o conteúdo de MyExecRefsLib.cpp com o código a seguir.

    // MyExecRefsLib.cpp
    // compile with: /EHsc /link MathFuncsLib.lib
    
    #include <iostream>
    
    #include "MathFuncsLib.h"
    
    using namespace std;
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        cout << "a + b = " <<
            MathFuncs::MyMathFuncs::Add(a, b) << endl;
        cout << "a - b = " <<
            MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
        cout << "a * b = " <<
            MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
        cout << "a / b = " <<
            MathFuncs::MyMathFuncs::Divide(a, b) << endl;
    
        return 0;
    }
    
  6. Crie o arquivo executável, selecionando Build Solution da Build menu.

To run the application

  1. Certifique-se de que myexecrefslib está selecionado como o projeto padrão. Em Solution Explorer, selecione MyExecRefsLib e, em seguida, selecione Como projeto de inicialização da projeto menu.

  2. Para executar o projeto, selecione Start Without Debugging partir do Debug menu. A saída deverá ser semelhante a isto:

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

Próximas etapas

Anterior: Demonstra Passo a passo: Criando e usando uma biblioteca de vínculo dinâmico (C++) | Próxima: Demonstra Passo a passo: Criando e usando um Assembly gerenciado (C++)

Consulte também

Tarefas

Tour guiado do Visual C++

Demonstra Passo a passo: Implantando o seu programa (C++)

Outros recursos

Metodologias de programação do Visual C++

Implantação (Visual C++)

Histórico de alterações

Date

History

Motivo

Setembro de 2010

Esclareceu etapa 4 "Para usar a funcionalidade da biblioteca estática no aplicativo".

Comentários do cliente.