Procedura dettagliata: Creare e usare una libreria statica
Questa procedura dettagliata illustra come creare una libreria statica (un file con estensione lib) da usare con le app C++. L'uso di una libreria statica è consigliato per riusare il codice. Invece di implementare le stesse routine in ogni app che richiede la funzionalità, è possibile scriverle una volta in una libreria statica e quindi fare riferimento a tale routine dalle app. Il codice collegato da una libreria statica diventa parte dell'app e non è necessario installare un — altro file per usare il codice.
In questa procedura dettagliata vengono illustrate le seguenti attività:
Prerequisiti
Conoscenza delle nozioni di base del linguaggio C++.
Creare un progetto di libreria statica
Le istruzioni per creare il progetto variano a seconda della versione di Visual Studio. Per visualizzare la documentazione per la versione preferita di Visual Studio, usare il controllo Selettore di versione. Si trova nella parte superiore del sommario in questa pagina.
Per creare un progetto di libreria statica in Visual Studio
Nella barra dei menu scegliere Filenuovo Project per aprire la finestra di dialogo Crea Project nuovo file.
Nella parte superiore della finestra di dialogo impostare Linguaggio su C++,impostare Piattaforma su Windowse impostare Project tipo su Libreria.
Nell'elenco filtrato dei tipi di progetto selezionare Windows Creazione guidata desktope quindi scegliere Avanti.
Nella pagina Configura il nuovo progetto immettere MathLibrary nella casella Project nome per specificare un nome per il progetto. Immettere StaticMath nella casella Nome soluzione. Scegliere il pulsante Crea per aprire la finestra Windows desktop Project finestra di dialogo.
Nella finestra Windows desktop Project, in Tipo di applicazioneselezionare Libreria statica (lib).
In Opzioni aggiuntivedeselezionare la casella di controllo Intestazione precompilata, se selezionata. Selezionare la casella Progetto vuoto.
Scegliere OK per creare il progetto.
Per creare un progetto di libreria statica in Visual Studio 2017
Sulla barra dei menu scegliere FilenuovoProject.
Nella finestra di dialogo Nuovo Project selezionare InstallatoVisual C++ Windows Desktop. Nel riquadro centrale selezionare Creazione guidata applicazione desktop di Windows.
Specificare un nome per il — progetto, ad esempio —— nella — Nome. Specificare un nome per la — soluzione, ad esempio —— nella casella — soluzione. Fare clic su OK .
Nella finestra Windows desktop Project, in Tipo di applicazioneselezionare Libreria statica (lib).
In Opzioni aggiuntivedeselezionare la casella di controllo Intestazione precompilata, se selezionata. Selezionare la casella Progetto vuoto.
Scegliere OK per creare il progetto.
Per creare un progetto di libreria statica in Visual Studio 2015
Sulla barra dei menu scegliere FilenuovoProject.
Nella finestra di dialogo Nuovo Project selezionare ModelliinstallatiVisual C++Win32. Nel riquadro centrale, selezionare Progetto console Win32.
Specificare un nome per il — progetto, ad esempio —— nella — Nome. Specificare un nome per la — soluzione, ad esempio —— nella casella — soluzione. Fare clic su OK .
Nella Creazione guidata applicazione Win32scegliere Avanti.
Nella pagina Applicazione Impostazioni, in Tipo di applicazioneselezionare Libreria statica. In Opzioni aggiuntivedeselezionare la casella di controllo Intestazione precompilata. Scegliere Fine per creare il progetto.
Aggiungere una classe alla libreria statica
Per aggiungere una classe alla libreria statica
Per creare un file di intestazioneper una nuova classe, fare clic con il pulsante destro del mouse per aprire il menu di scelta rapida per il progetto MathLibrary in Esplora soluzioni e quindi scegliere Aggiunginuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Visual C++codice. Nel riquadro centrale selezionare File di intestazione (.h). Specificare un nome per il file di — intestazione, ad esempio —— quindi scegliere il — Aggiungi. Viene visualizzato un file di intestazione quasi vuoto.
Aggiungere una dichiarazione per una classe denominata per eseguire operazioni matematiche comuni, ad esempio
Arithmeticaddizione, sottrazione, moltiplicazione e divisione. Il codice dovrebbe essere simile al seguente:// 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); }; }Per creare un file di origine per la nuova classe, aprire il menu di scelta rapida per il progettoMathLibrary in Esplora soluzioni e quindi scegliere Aggiunginuovo elemento.
Nel riquadro centrale della finestra di dialogo Aggiungi nuovo elemento selezionare File C++ (con estensione cpp). Specificare un nome per il file di — origine, ad esempio —— quindi scegliere il — Aggiungi. Viene visualizzato un file di origine vuoto.
Usare questo file di origine per implementare la funzionalità per la classe
Arithmetic. Il codice dovrebbe essere simile al seguente:// 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; } }Per compilare la libreria statica, selezionare Compilasoluzione di compilazione sulla barra dei menu. La compilazione crea una libreria statica, MathLibrary.lib,che può essere usata da altri programmi.
Nota
Quando si usa la riga di comando in Visual Studio per la compilazione, è necessario compilare il programma in due passaggi. Eseguire prima
cl /c /EHsc MathLibrary.cppdi tutto per compilare il codice e creare un file oggetto denominatocl /c /EHsc MathLibrary.cpp. Il comando richiama il compilatore, Cl.exe e l'opzioneclspecifica la compilazione senza/ccollegamento. Per altre informazioni, vedere /c (Compila senza collegamento). Eseguire quindilib MathLibrary.objper collegare il codice e creare la librerialib MathLibrary.obj. Il comandolibrichiama Gestione librerie, Lib.exe. Per altre informazioni, vedere LIB Reference.
Creare un'app console C++ che fa riferimento alla libreria statica
Per creare un'app console C++ che fa riferimento alla libreria statica in Visual Studio
In Esplora soluzionifare clic con il pulsante destro del mouse sul nodo principale, Soluzione 'StaticMath',per aprire il menu di scelta rapida. Scegliere Aggiunginuovo Project per aprire la finestra di dialogo Aggiungi Project nuovo.
Nella parte superiore della finestra di dialogo impostare il filtro Project tipo di dati su Console.
Nell'elenco filtrato dei tipi di progetto scegliere App console e quindi scegliere Avanti. Nella pagina successiva immettere MathClient nella casella Nome per specificare un nome per il progetto.
Scegliere il pulsante Crea per creare il progetto client.
Dopo aver creato un'applicazione console, verrà creato un programma vuoto. Il nome del file di origine è uguale al nome scelto in precedenza. Nell'esempio è denominato
MathClient.cpp.
Per creare un'app console C++ che fa riferimento alla libreria statica in Visual Studio 2017
In Esplora soluzionifare clic con il pulsante destro del mouse sul nodo principale, Soluzione 'StaticMath',per aprire il menu di scelta rapida. Scegliere Aggiunginuovo Project per aprire la finestra di dialogo Aggiungi un Project nuovo.
Nella finestra di dialogo Aggiungi nuovo Project selezionare InstallatoVisual C++Windows Desktop. Nel riquadro centrale selezionare Creazione guidata applicazione desktop di Windows.
Specificare un nome per il — progetto, ad esempio —— nella — Nome. Fare clic su OK .
Nella finestra Windows desktop Project, in Tipo di applicazioneselezionare Applicazione console (.exe).
In Opzioni aggiuntivedeselezionare la casella di controllo Intestazione precompilata, se selezionata.
Scegliere OK per creare il progetto.
Dopo aver creato un'applicazione console, verrà creato un programma vuoto. Il nome del file di origine è uguale al nome scelto in precedenza. Nell'esempio è denominato
MathClient.cpp.
Per creare un'app console C++ che fa riferimento alla libreria statica in Visual Studio 2015
In Esplora soluzionifare clic con il pulsante destro del mouse sul nodo principale, Soluzione 'StaticMath',per aprire il menu di scelta rapida. Scegliere Aggiunginuovo Project per aprire la finestra di dialogo Aggiungi un Project nuovo.
Nella finestra di dialogo Aggiungi nuovo Project selezionare InstallatoVisual C++Win32. Nel riquadro centrale, selezionare Progetto console Win32.
Specificare un nome per il — progetto, ad esempio —— nella — Nome. Fare clic su OK .
Nella finestra di dialogo Creazione guidata applicazione Win32 scegliere Avanti.
Nella pagina Applicazione Impostazioni, in Tipo di applicazione,assicurarsi che l'opzione Applicazione console sia selezionata. In Opzioni aggiuntivedeselezionare Intestazione precompilatae quindi selezionare la casella di controllo Project vuoto. Scegliere Fine per creare il progetto.
Per aggiungere un file di origine al progetto vuoto, fare clic con il pulsante destro del mouse per aprire il menu di scelta rapida per il progetto MathClient in Esplora soluzionie quindi scegliere Aggiungi nuovo elemento.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare Visual C++codice. Nel riquadro centrale selezionare File di C++ (.cpp). Specificare un nome per il file di — origine, ad esempio —— quindi scegliere il — Aggiungi. Viene visualizzato un file di origine vuoto.
Usare la funzionalità della libreria statica nell'app
Per usare questa funzionalità della libreria statica nell'applicazione
Per poter usare le routine matematiche della libreria statica, è necessario fare riferimento a esse. Aprire il menu di scelta rapida per il progetto MathClient in Esplora soluzionie quindi scegliere Aggiungiriferimento.
La finestra di dialogo Aggiungi riferimento contiene l'elenco di tutte le librerie a cui è possibile fare riferimento. La scheda Progetti elenca i progetti nella soluzione corrente e le librerie a cui fanno riferimento. Aprire la scheda Progetti, selezionare la casella di controllo MathLibrary e quindi fare clic sul pulsante OK.
Per fare riferimento al
MathLibrary.hfile di intestazione, è necessario modificare il percorso delle directory incluse. In Esplora soluzionifare clic con il pulsante destro del mouse su MathClient per aprire il menu di scelta rapida. Scegliere Proprietà per aprire la finestra di dialogo Pagine delle proprietà MathClient.Nella finestra di dialogo Pagine delle proprietà MathClient impostare l'elenco a discesa Configurazione su Tutte le configurazioni. Impostare l'elenco a discesa Piattaforma su Tutte le piattaforme.
Selezionare la pagina delle proprietà Proprietàdi configurazione C/C++Generale. Nella proprietà Directory di inclusione aggiuntive specificare il percorso della directory MathLibrary o cercarlo.
Per cercare il percorso della directory:
Aprire l'elenco a discesa Additional Include Directories property value (Directory di inclusione aggiuntive) e quindi scegliere Edit (Modifica).
Nella finestra di dialogo Directory di inclusione aggiuntive fare doppio clic nella parte superiore della casella di testo. Scegliere quindi il pulsante con i puntini di sospensione (...) alla fine della riga.
Nella finestra di dialogo Seleziona directory passare a un livello superiore e quindi selezionare la directory MathLibrary. Scegliere quindi il pulsante Seleziona cartella per salvare la selezione.
Nella finestra di dialogo Directory di inclusione aggiuntive scegliere il pulsante OK.
Nella finestra di dialogo Pagine delle proprietà scegliere OK per salvare le modifiche apportate al progetto.
È ora possibile usare la
Arithmeticclasse in questa app includendo#include "MathLibrary.h"l'intestazione nel codice. Sostituire il contenuto diMathClient.cppcon questo codice:// 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; }Per compilare il file eseguibile, scegliere Compila soluzione di compilazione sulla barra dei menu.
Eseguire l'app
Per eseguire l'app
Assicurarsi che MathClient sia selezionato come progetto predefinito. Per selezionarlo, fare clic con il pulsante destro del mouse per aprire il menu di scelta rapida per MathClient in Esplora soluzionie quindi scegliere Imposta come avvio Project.
Per eseguire il progetto, sulla barra dei menu scegliere DebugAvvia senza eseguire debug. L'output dovrebbe essere simile al seguente:
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747475
Vedi anche
Procedura dettagliata: Creazione e uso di una libreria a collegamento dinamico (C++)
Applicazioni desktop (Visual C++)