Criando e usando uma biblioteca estático (C++)
O próximo tipo de biblioteca criaremos é um estático biblioteca (LIB).Usando estático bibliotecas é 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:
Criar um novo estático projeto de biblioteca.
Adicionando uma classe para o estático biblioteca.
Criando um aplicativo que faz referência a estático biblioteca.
Usando a funcionalidade do estático biblioteca 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 estático projeto de biblioteca
From a Arquivo menu, selecionar Novo and then Projeto ….
Sobre o Tipos de projeto painel, em O Visual C++, selecionar Win32.
Sobre o Modelos painel, selecionar Aplicativo do Console Win32.
escolher um nome para o projeto such sistema autônomo MathFuncsLib e digite-o no Nome campo.escolher um nome para a solução, sistema autônomo StaticLibrary e digite-o no Nome da solução campo.
Pressione OK para iniciar o Win32 aplicativo assistente.Sobre o Visão geral página de do Assistente de aplicativos Win32 caixa de diálogo, pressione Próximo.
Sobre o Configurações do aplicativo página de do Assistente de aplicativos Win32, under Tipo de aplicativo, selecionar estático biblioteca.
Sobre o Configurações do aplicativo página de do Assistente de aplicativos Win32, under Opções adicionais, desmarcar o Cabeçalho pré-compilado a caixa de seleção.
Pressione Concluir para criar o projeto.
Para adicionar uma classe para o estático biblioteca
Para criar um arquivo de cabeçalho para uma nova classe do Projeto menu, selecionar Adicionar novo item ….The Adicionar novo item caixa de diálogo será exibida.From a Categorias painel, em O Visual C++, selecionar Código.From a Modelos painel, selecionar Arquivo de cabeçalho (. h).escolher um nome para o arquivo de cabeçalho, sistema autônomo MathFuncsLib.h e pressione Adicionar.Um arquivo em branco será exibido.
Adicione uma classe simples denominada MyMathFuncs 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:
// 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); }; }
Para criar um arquivo de fonte para uma nova classe do Projeto menu, selecionar Adicionar novo item ….The Adicionar novo item caixa de diálogo será exibida.From a Categorias painel, em O Visual C++, selecionar Código.From a Modelos painel, selecionar Arquivo do C++ (CPP).escolher um nome para o arquivo de fonte, tais sistema autônomo MathFuncsLib.cpp e pressione Adicionar.Um arquivo em branco será exibido.
Implementar a funcionalidade para MyMathFuncs no arquivo de fonte.O código deve ser semelhante ao seguinte:
// 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; } }
Para criar o projeto em um estático biblioteca, a partir de Projeto menu, selecionar MathFuncsLib Properties….No painel esquerdo, em Propriedades de configuração, selecionar Geral.No painel à direita, altere o Tipo de configuração to Biblioteca estática (.lib).Pressione OK para salvar as alterações.
Observação: Quando você compilação da linha de comando, você deve compilação o programa em duas etapas.Primeiro, compilar o código Por Usando Cl.exe com o /c (de opção do compiladorcl /c /EHsc MathFuncsLib.cpp). Este será criar um arquivo de objeto chamado MathFuncsLib.obj.Para obter mais informações, consulte /c (Compilar sem vínculo).Segundo, vincular o código usando o Gerenciador biblioteca Lib.exe (lib MathFuncsLib.obj). Isso criará a estático biblioteca MathFuncsLib.lib.Para obter mais informações sobre o Gerenciador de bibliotecas, consulte Referência LIB.
Compilar o estático biblioteca selecionando Criar solução from the Compilação menu.Isso cria um estático biblioteca pode ser usada por outros programas.
Para criar um aplicativo que faz referência a estático biblioteca
Para criar um aplicativo que irá referenciar e usar o estático biblioteca que acabou de ser criada, da Arquivo menu, selecionar Novo and then Projeto ….
Sobre o Tipos de projeto painel, em O Visual C++, selecionar Win32.
Sobre o Modelos painel, selecionar Aplicativo do Console Win32.
Selecione um nome para o projeto such sistema autônomo MyExecRefsLib e digite-o no Nome campo.Próximo a Solução, selecionar Adicionar à solução na lista suspensa.Isso adicionará o novo projeto para a mesma solução sistema autônomo o estático biblioteca.
Pressione OK para iniciar o Assistente de aplicativos Win32.Sobre o Visão geral página de do Assistente de aplicativos Win32 caixa de diálogo, pressione Próximo.
sobre o Configurações do aplicativo página de do Assistente de aplicativos Win32, under Tipo de aplicativo, selecionar Aplicativo de console.
Sobre o Configurações do aplicativo página de do Assistente de aplicativos Win32, under Opções adicionais, desmarcar Cabeçalho pré-compilado.
Pressione Concluir para criar o projeto.
Para usar a funcionalidade do estático biblioteca no aplicativo de console
Depois de criar um novo aplicativo de console, o assistente cria um programa vazio para você.O nome do arquivo de fonte será igual ao nome que você escolheu anteriormente para o projeto.Neste exemplo, ele é denominado MyExecRefsLib.cpp.
Para usar as rotinas de matemática que você criou na estático biblioteca, você deve referenciá-los.Para fazer isso, selecionar References… from the Projeto menu.From a Páginas de propriedades caixa de diálogo, expandir o Propriedades comuns nó e selecionar Referências.Em seguida, selecionar o Adicionar novo Reference… botão.Para obter mais informações sobre o References… caixa de diálogo, consulte Estrutura e referências, ComComummon Properties, < ProjectName > Caixa de diálogo de páginas de propriedade.
A caixa de diálogo Add Reference é exibida.Esta caixa de diálogo lista todas as bibliotecas que você possa fazer referência.The Projeto guia lista todos os projetos na solução corrente e todas as bibliotecas que eles contêm.Sobre o Projetos guia, selecionar MathFuncsLib.Em seguida, selecionar OK.Para obter mais informações sobre o Adicionar referência caixa de diálogo, consulte Caixa de diálogo Add Reference.
Para fazer referência os arquivos de cabeçalho da biblioteca estática, você deve modificar o caminho de diretórios de inclusão.Para fazer isso, no Páginas de propriedades diálogo caixa, expandir o Propriedades de configuração nó, expandir o C/C++ nó e, em seguida, selecionar Geral.Próximo a Outros diretórios de inclusão, digite o caminho para o local do arquivo de cabeçalho MathFuncsLib.h.
Agora você pode usar a classe MyMathFuncs neste aplicativo.Substitua o Sumário 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; }
Crie o arquivo executável, selecionando Criar solução from the Compilação menu.
Para executar o aplicativo
Verifique se a opção que MyExecRefsLib é selecionada sistema autônomo o projeto padrão.No O gerenciador de soluções, selecionar MyExecRefsLib e, em seguida, selecionar conjunto sistema autônomo inicialização Project from the Projeto menu.
Para executar o projeto, selecionar Iniciar sem depuração from the Depurar menu.A saída deverá ser semelhante a esta:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475
Próximas etapas
Anterior:Criando e usando uma biblioteca de vínculo dinâmico (C++) | Próxima:Criando e usando um assembly gerenciado (C++)