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 riapplicare le stesse routine in ogni app che richiede la funzionalità, è necessario scriverle una volta in una libreria statica e quindi farvi riferimento dalle app. Il codice collegato da una libreria statica diventa parte dell'app. 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 relativa alla versione preferita di Visual Studio, usare il controllo selettore della versione . Si trova nella parte superiore del sommario in questa pagina.

Per creare un progetto di libreria statica in Visual Studio

  1. Sulla barra dei menu scegliere File>Nuovo>progetto per aprire la finestra di dialogo Crea un nuovo progetto.

  2. Nella parte superiore della finestra di dialogo impostare Linguaggio su C++ , impostare Piattaforma su Windows e impostare Tipo di progetto su Libreria.

  3. Nell'elenco filtrato dei tipi di progetto selezionare Creazione guidata desktop di Windows e quindi scegliere Avanti.

  4. Nella pagina Configura il nuovo progetto immettere MathLibrary nella casella Nome progetto per specificare un nome per il progetto. Immettere StaticMath nella casella Nome soluzione. Scegliere il pulsante Crea per aprire la finestra di dialogo Progetto desktop di Windows.

  5. Nella finestra di dialogo Progetto desktop di Windows, in Tipo di applicazione, selezionare Libreria statica (.lib).

  6. In Opzioni aggiuntive deselezionare la casella di controllo Intestazione precompilata se selezionata. Selezionare la casella Progetto vuoto .

  7. Scegliere OK per creare il progetto.

Per creare un progetto di libreria statica in Visual Studio 2017

  1. Nella barra dei menu scegliere File>Nuovo>Progetto.

  2. Nella finestra di dialogo Nuovo progetto selezionare Installato>Visual C++>Windows Desktop. Nel riquadro centrale selezionare Creazione guidata applicazione desktop di Windows.

  3. Specificare un nome per il progetto, ad esempio MathLibrary, nella casella Nome. Specificare un nome per la soluzione, ad esempio StaticMath, nella casella Nome soluzione. Scegli il pulsante OK.

  4. Nella finestra di dialogo Progetto desktop di Windows, in Tipo di applicazione, selezionare Libreria statica (.lib).

  5. In Opzioni aggiuntive deselezionare la casella di controllo Intestazione precompilata se selezionata. Selezionare la casella Progetto vuoto .

  6. Scegliere OK per creare il progetto.

Per creare un progetto di libreria statica in Visual Studio 2015

  1. Nella barra dei menu scegliere File>Nuovo>Progetto.

  2. Nella finestra di dialogo Nuovo progetto selezionare Modelli>installati>Visual C++>Win32. Nel riquadro centrale, selezionare Progetto console Win32.

  3. Specificare un nome per il progetto, ad esempio MathLibrary, nella casella Nome. Specificare un nome per la soluzione, ad esempio StaticMath, nella casella Nome soluzione. Scegli il pulsante OK.

  4. Nella Creazione guidata applicazione Win32 scegliere Avanti.

  5. Nella pagina Impostazioni applicazione, in Tipo di applicazione selezionare Libreria statica. In Opzioni aggiuntive deselezionare 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

  1. Per creare un file di intestazione per 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, quindi scegliere Aggiungi>nuovo elemento.

  2. Nella finestra di dialogo Aggiungi nuovo elemento selezionare Visual C++>Code. Nel riquadro centrale selezionare File di intestazione (.h). Specificare un nome per il file di intestazione, ad esempio MathLibrary.h, e quindi scegliere il pulsante Aggiungi . Viene visualizzato un file di intestazione quasi vuoto.

  3. Aggiungere una dichiarazione per una classe denominata Arithmetic per eseguire operazioni matematiche comuni, ad esempio addizione, 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);
        };
    }
    
  4. Per creare un file di origine per la nuova classe, aprire il menu di scelta rapida per il progetto MathLibrary in Esplora soluzioni e quindi scegliere Aggiungi>nuovo elemento.

  5. Nel riquadro centrale della finestra di dialogo Aggiungi nuovo elemento selezionare File C++ (.cpp). Specificare un nome per il file di origine, ad esempio MathLibrary.cpp, e quindi scegliere il pulsante Aggiungi. Viene visualizzato un file di origine vuoto.

  6. 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;
        }
    }
    
  7. Per compilare la libreria statica, selezionare Compila>soluzione nella 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. cl /c /EHsc MathLibrary.cpp Eseguire prima di tutto per compilare il codice e creare un file oggetto denominato MathLibrary.obj. Il cl comando richiama il compilatore, Cl.exe e l'opzione /c specifica la compilazione senza collegamento. Per altre informazioni, vedere /c (Compilazione senza collegamento).) In secondo luogo, eseguire lib MathLibrary.obj per collegare il codice e creare la libreria statica MathLibrary.lib. Il lib comando richiama Gestione libreria Lib.exe. Per altre informazioni, vedere Le informazioni di riferimento su LIB.

Creare un'app console C++ che faccia riferimento alla libreria statica

Per creare un'app console C++ che fa riferimento alla libreria statica in Visual Studio

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo superiore, Soluzione 'StaticMath', per aprire il menu di scelta rapida. Scegliere Aggiungi>nuovo progetto per aprire la finestra di dialogo Aggiungi nuovo progetto.

  2. Nella parte superiore della finestra di dialogo impostare il filtro Tipo di progetto su Console.

  3. 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.

  4. Scegliere il pulsante Crea per creare il progetto client.

  5. 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

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo superiore, Soluzione 'StaticMath', per aprire il menu di scelta rapida. Scegliere Aggiungi>nuovo progetto per aprire la finestra di dialogo Aggiungi nuovo progetto.

  2. Nella finestra di dialogo Aggiungi nuovo progetto selezionare Installato>Visual C++>Windows Desktop. Nel riquadro centrale selezionare Creazione guidata applicazione desktop di Windows.

  3. Specificare un nome per il progetto, ad esempio MathClient, nella casella Nome. Scegli il pulsante OK.

  4. Nella finestra di dialogo Progetto desktop di Windows, in Tipo di applicazione selezionare Applicazione console (.exe).

  5. In Opzioni aggiuntive deselezionare la casella di controllo Intestazione precompilata se selezionata.

  6. Scegliere OK per creare il progetto.

  7. 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

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul nodo superiore, Soluzione 'StaticMath', per aprire il menu di scelta rapida. Scegliere Aggiungi>nuovo progetto per aprire la finestra di dialogo Aggiungi nuovo progetto.

  2. Nella finestra di dialogo Aggiungi nuovo progetto selezionare Installato>Visual C++>Win32. Nel riquadro centrale, selezionare Progetto console Win32.

  3. Specificare un nome per il progetto, ad esempio MathClient, nella casella Nome. Scegli il pulsante OK.

  4. Nella finestra di dialogo Creazione guidata applicazione Win32 scegliere Avanti.

  5. Nella pagina Impostazioni applicazione, in Tipo di applicazione, verificare che l'applicazione console sia selezionata. In Opzioni aggiuntive deselezionare Intestazione precompilata, quindi selezionare la casella di controllo Progetto vuoto. Scegliere Fine per creare il progetto.

  6. 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 soluzioni e quindi scegliere Aggiungi>nuovo elemento.

  7. Nella finestra di dialogo Aggiungi nuovo elemento selezionare Visual C++>Code. Nel riquadro centrale selezionare File di C++ (.cpp). Specificare un nome per il file di origine, ad esempio MathClient.cpp, e quindi scegliere il pulsante 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

  1. 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 soluzioni e quindi scegliere Aggiungi>riferimento.

  2. La finestra di dialogo Aggiungi riferimento contiene l'elenco di tutte le librerie a cui è possibile fare riferimento. Nella scheda Progetti sono elencati i progetti nella soluzione corrente e le eventuali librerie a cui fanno riferimento. Aprire la scheda Progetti , selezionare la casella di controllo MathLibrary e quindi scegliere il pulsante OK .

  3. Per fare riferimento al MathLibrary.h file di intestazione, è necessario modificare il percorso delle directory incluse. In Esplora soluzioni fare 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.

  4. 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.

  5. 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:

    1. Aprire l'elenco a discesa Valore della proprietà Directory di inclusione aggiuntive e quindi scegliere Modifica.

    2. 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.

    3. 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.

    4. Nella finestra di dialogo Directory di inclusione aggiuntive scegliere il pulsante OK .

    5. Nella finestra di dialogo Pagine delle proprietà scegliere il pulsante OK per salvare le modifiche apportate al progetto.

  6. È ora possibile usare la Arithmetic classe in questa app includendo l'intestazione #include "MathLibrary.h" nel codice. Sostituire il contenuto di MathClient.cpp con 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;
    }
    
  7. Per compilare il file eseguibile, scegliere Compila>soluzione nella barra dei menu.

Eseguire l'app

Per eseguire l'app

  1. 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 soluzioni, quindi scegliere Imposta come progetto di avvio.

  2. Per eseguire il progetto, sulla barra dei menu scegliere Debug>Avvia 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 utilizzo di una libreria a collegamento dinamico (C++)