Passo a passo: Criar e usar uma biblioteca estática

Este passo a passo mostra como criar uma biblioteca estática (arquivo.lib) para uso com aplicativos C++. A biblioteca estática é uma forma excelente de reutilizar códigos. Em vez de reimplementar as mesmas rotinas em cada aplicativo que exige a funcionalidade, você as escreve uma vez em uma biblioteca estática e, em seguida, faz referência a ela dos aplicativos. O código vinculado a partir de uma biblioteca estática torna-se parte do seu aplicativo. Você não precisa instalar outro arquivo para usar o código.

Este passo a passo apresenta estas tarefas:

Pré-requisitos

Compreensão dos princípios básicos da linguagem C++.

Criar um projeto de biblioteca estática

As instruções de como criar o projeto variam dependendo da sua versão do Visual Studio. Para ver a documentação da sua versão preferencial do Visual Studio, use o controle seletor de Versão. Ele é encontrado na parte superior da tabela de conteúdo nesta página.

Para criar um projeto de biblioteca estática no Visual Studio

  1. Na barra de menu, escolha Arquivo>Novo>Projeto para abrir a caixa de diálogo Criar um nono projeto.

  2. Na parte superior da caixa de diálogo, defina Linguagem como C++, Plataforma como Windows e Tipo de projeto como Biblioteca.

  3. Na lista filtrada de tipos de projeto, selecione Assistente para Área de Trabalho do Windows e escolha Avançar.

  4. Na página Configurar seu novo projeto, insira MathLibrary na caixa Nome do projeto para especificar um nome para o projeto. Insira StaticMath na caixa Nome da solução. Escolha o botão Criar para abrir a caixa de diálogo Projeto da Área de Trabalho do Windows.

  5. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Biblioteca Estática (.lib).

  6. Em Opções adicionais, desmarque a caixa de seleção de Cabeçalho pré-compilado, se estiver marcada. Marque a caixa Projeto vazio.

  7. Clique em OK para criar o projeto.

Para criar um projeto de biblioteca estática no Visual Studio 2017

  1. Na barra de menus, escolha Arquivo>Novo>Projeto.

  2. Na caixa de diálogo Novo projeto, selecione Instalado>Visual C++>Área de Trabalho do Windows. No painel central, escolha Assistente do Windows Desktop.

  3. Especifique um nome para o projeto, por exemplo MathLibraryna caixa Nome. Especifique um nome para a solução, por exemplo StaticMath na caixaNome da solução. Clique no botão OK.

  4. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Biblioteca Estática (.lib).

  5. Em Opções adicionais, desmarque a caixa de seleção de Cabeçalho pré-compilado, se estiver marcada. Marque a caixa Projeto vazio.

  6. Clique em OK para criar o projeto.

Para criar um projeto de biblioteca estática no Visual Studio 2015

  1. Na barra de menus, escolha Arquivo>Novo>Projeto.

  2. Na caixa de diálogo Novo projeto, selecione Instalado>Modelos>Visual C++>Win32. No painel central, escolha Aplicativo de Console Win32.

  3. Especifique um nome para o projeto, por exemplo MathLibraryna caixa Nome. Especifique um nome para a solução, por exemplo StaticMath na caixaNome da solução. Clique no botão OK.

  4. No Assistente de Aplicativo Win32, selecione Avançar.

  5. Na página Configurações do aplicativo, em Tipo de aplicativo, selecioneBiblioteca estática. Em Opções adicionais, desmarque a caixa de seleção de Cabeçalho pré-compilado. Selecione Concluir para criar o projeto.

Adicionar uma classe à biblioteca estática

Para adicionar uma classe à biblioteca estática

  1. Para criar um arquivo de cabeçalho para uma nova classe, clique com o botão direito do mouse para abrir o menu de atalho do projeto MathLibrary no Gerenciador de Soluções e selecione Adicionar>Novo item.

  2. Na caixa de diálogo Adicionar novo item, selecione Código >Visual C++. No painel central, escolha Arquivo de Cabeçalho (.h). Especifique um nome para o arquivo de cabeçalho, como MathFuncsDll.h e selecione o botão Adicionar. Um arquivo de cabeçalho quase em branco é exibido.

  3. Adicione uma declaração para uma classe com o nome Arithmetic para executar operações matemáticas comuns, como adição, subtração, multiplicação e divisão. O código deve ser parecido com:

    // MathLibrary.h
    #pragma once
    
    namespace MathLibrary
    {
        class Arithmetic
        {
        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
            static double Divide(double a, double b);
        };
    }
    
  4. Para criar um arquivo de origem para uma nova classe, abra o menu de atalho do projeto MathLibrary no Gerenciador de Soluções e selecione Adicionar>Novo item.

  5. Na caixa de diálogo Adicionar novo item, no painel central, selecione Arquivo C++ (.cpp). Especifique um nome para o arquivo de origem, como MathLibrary.cpp e selecione o botão Adicionar. Um arquivo de origem em branco é exibido.

  6. Use este arquivo de origem para implementar a funcionalidade da classe Arithmetic. O código deve ser parecido com:

    // MathLibrary.cpp
    // compile with: cl /c /EHsc MathLibrary.cpp
    // post-build command: lib MathLibrary.obj
    
    #include "MathLibrary.h"
    
    namespace MathLibrary
    {
        double Arithmetic::Add(double a, double b)
        {
            return a + b;
        }
    
        double Arithmetic::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double Arithmetic::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double Arithmetic::Divide(double a, double b)
        {
            return a / b;
        }
    }
    
  7. Para criar a biblioteca estática, selecione Criar>Solução Buildna barra de menus. O build cria uma biblioteca estática, MathLibrary.lib, que pode ser usado por outros programas.

    Observação

    Para criar na linha de comando do Visual Studio, você deve criar o programa em duas etapas. Primeiro, execute cl /c /EHsc MathLibrary.cpp para compilar o código e criar um arquivo de objeto chamado MathLibrary.obj. (O comando cl invoca o compilador, Cl.exe e a opção /c especifica compilar sem vincular. Para obter mais informações, consulte /c (Compilar sem vinculação).) Em segundo lugar, execute lib MathLibrary.obj para vincular o código e criar a biblioteca estática MathLibrary.lib. (O lib comando chama o Gerenciador de Bibliotecas, Lib.exe. Para obter mais informações, consulte Referência do LIB.)

Criar um aplicativo de console C++ que faça referência à biblioteca estática

Para criar um aplicativo de console C++ que faça referência à biblioteca estática no Visual Studio

  1. NoGerenciador de soluções, clique com o botão direito do mouse no nó superior, Solução StaticMath para abrir o menu de atalho. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na parte superior da caixa de diálogo, defina o filtro Tipo de projeto como Console.

  3. Na lista filtrada de tipos de projeto, escolha Aplicativo de Console e, em seguida, escolha Avançar. Na próxima página, insira MathClient na caixa Nome para especificar um nome para o projeto.

  4. Escolha o botão Criar para criar o projeto do cliente.

  5. Depois que você cria um aplicativo de console, o sistema cria um programa vazio para você. O nome do arquivo de origem será o mesmo que você escolheu anteriormente. No exemplo, o nome usado é MathClient.cpp.

Para criar um aplicativo de console C++ que faça referência à biblioteca estática no Visual Studio 2017

  1. NoGerenciador de soluções, clique com o botão direito do mouse no nó superior, Solução StaticMath para abrir o menu de atalho. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na caixa de diálogo Adicionar novo projeto, selecione Instalado>Visual C++>Área de Trabalho do Windows. No painel central, escolha Assistente do Windows Desktop.

  3. Especifique um nome para o projeto, por exemplo MathClient na caixa Nome. Clique no botão OK.

  4. Na caixa de diálogo Projeto da Área de Trabalho do Windows, no Tipo de aplicativo, selecione Aplicativo de Console (.exe).

  5. Em Opções adicionais, desmarque a caixa de seleção de Cabeçalho pré-compilado, se estiver marcada.

  6. Clique em OK para criar o projeto.

  7. Depois que você cria um aplicativo de console, o sistema cria um programa vazio para você. O nome do arquivo de origem será o mesmo que você escolheu anteriormente. No exemplo, o nome usado é MathClient.cpp.

Para criar um aplicativo de console C++ que faça referência à biblioteca estática no Visual Studio 2015

  1. NoGerenciador de soluções, clique com o botão direito do mouse no nó superior, Solução StaticMath para abrir o menu de atalho. Selecione Adicionar>Novo projeto para abrir a caixa de diálogo Adicionar um novo projeto.

  2. Na caixa de diálogo Adicionar novo projeto, selecione Instalado>Visual C++>Win32. No painel central, escolha Aplicativo de Console Win32.

  3. Especifique um nome para o projeto, por exemplo MathClient na caixa Nome. Clique no botão OK.

  4. Na caixa de diálogo Assistente de Aplicativo Win32, clique no botão Avançar.

  5. Na página Configurações do Aplicativo, em Tipo de aplicativo, verifique se o Aplicativo de console foi selecionado. Em Opções adicionais, desmarque Cabeçalho pré-compilado e marque a caixa de seleção Projeto vazio. Selecione Concluir para criar o projeto.

  6. Para adicionar um arquivo de origem ao projeto vazio, clique com o botão direito do mouse para abrir o menu de atalho do projeto MathClient em Gerenciador de Soluções e selecione Adicionar>Novo item.

  7. Na caixa de diálogo Adicionar novo item, selecione Código >Visual C++. No painel central, selecione Arquivo do C++ (.cpp). Especifique um nome para o arquivo de origem, como MathClient.cpp e selecione o botão Adicionar. Um arquivo de origem em branco é exibido.

Usar a funcionalidade da biblioteca estática no aplicativo

Para usar a funcionalidade da biblioteca estática no aplicativo

  1. Antes de usar as rotinas matemáticas na biblioteca estática, você deve fazer referência. Abra o menu de atalho para o projeto MathClientno Gerenciador de Soluções e selecione Adicionar>Referência.

  2. A caixa de diálogo Adicionar Referência lista as bibliotecas que você pode fazer referência. A guia Projetos mostra os projetos da solução atual e as bibliotecas a que fazem referência. Abra a guia Projetos, selecione a caixa de seleção MathLibrary e depois selecione o botão OK.

  3. Para fazer referência ao arquivo de cabeçalho MathLibrary.h, você deve modificar os caminhos dos diretórios incluídos. Em Gerenciador de soluções, clique com o botão direito emMathClient para abrir o menu de atalho. Selecione Propriedades para abrir a caixa de diálogo Páginas de propriedade MathClient.

  4. Na caixa de diálogo Páginas de Propriedades do MathClient, defina a lista suspensa Configuração para Todas as configurações. Defina a lista suspensa Plataforma como Todas as plataformas.

  5. Selecione a página de propriedades Propriedades da Configuração>C/C++>Geral. Na propriedade Incluir diretórios adicionais especifique o caminho do diretório MathLibrary ou procure o diretório.

    Para procurar o caminho de diretório:

    1. Abra a lista suspensa de valor da propriedade Incluir diretórios adicionais e selecione Editar.

    2. Na caixa de diálogo Incluir Diretórios Adicionais, clique duas vezes na parte superior da caixa de texto. Em seguida, escolha o botão de reticências (...) no final da linha.

    3. Na caixa de diálogo Selecionar Diretório, navegue até um nível e selecione o diretório MathLibrary. Em seguida, selecione o botão Selecionar pasta para salvar sua seleção.

    4. Na caixa de diálogo Incluir diretórios adicionais, selecione o botão OK.

    5. Na caixa de diálogo Páginas de Propriedades, selecione o botão OK para salvar as alterações no projeto.

  6. Agora você pode usar a classe Arithmetic neste aplicativo incluindo o cabeçalho #include "MathLibrary.h" em seu código. Substitua os conteúdos de MathClient.cpp por este código:

    // MathClient.cpp
    // compile with: cl /EHsc MathClient.cpp /link MathLibrary.lib
    
    #include <iostream>
    #include "MathLibrary.h"
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        std::cout << "a + b = " <<
            MathLibrary::Arithmetic::Add(a, b) << std::endl;
        std::cout << "a - b = " <<
            MathLibrary::Arithmetic::Subtract(a, b) << std::endl;
        std::cout << "a * b = " <<
            MathLibrary::Arithmetic::Multiply(a, b) << std::endl;
        std::cout << "a / b = " <<
            MathLibrary::Arithmetic::Divide(a, b) << std::endl;
    
        return 0;
    }
    
  7. Para criar o executável, escolha Criar>Solução Build na barra de menus.

Executar o aplicativo

Para executar o aplicativo

  1. Verifique se MathClientfoi selecionado como projeto padrão. Para selecioná-lo, clique com o botão direito do mouse para abrir o menu de atalho para MathClient no Gerenciador de Soluções e escolha Definir como Projeto de Inicialização.

  2. Para executar o projeto, na barra de menus, escolha Depurar>Iniciar sem Depuração. O resultado deve ser semelhante a:

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

Confira também

Instruções passo a passo: criando e usando uma biblioteca de vínculo dinâmico (C++)