Dela via


Genomgång: Skapa och använda ett statiskt bibliotek

Den här stegvisa genomgången visar hur du skapar ett statiskt bibliotek (.lib-fil) för användning med C++-appar. Att använda ett statiskt bibliotek är ett bra sätt att återanvända kod. I stället för att omimplementera samma rutiner i varje app som kräver funktionerna skriver du dem en gång i ett statiskt bibliotek och refererar sedan till dem från apparna. Kod som är länkad från ett statiskt bibliotek blir en del av din app – du behöver inte installera någon annan fil för att använda koden.

Den här genomgången beskriver följande uppgifter:

Förutsättningar

En förståelse av grunderna i C++-språket.

Skapa ett statiskt biblioteksprojekt

Instruktionerna för hur du skapar projektet varierar beroende på din version av Visual Studio. Om du vill se dokumentationen för din föredragna version av Visual Studio använder du väljarkontrollen Version. Den finns överst i innehållsförteckningen på den här sidan.

Skapa ett statiskt biblioteksprojekt i Visual Studio

  1. I menyraden väljer du Arkiv>Nytt>projekt för att öppna dialogrutan Skapa ett nytt projekt .

  2. Längst upp i dialogrutan anger du Språk till C++, anger Plattform till Windows och anger Projekttyp till Bibliotek.

  3. I den filtrerade listan över projekttyper väljer du Guiden Windows-skrivbord och väljer sedan Nästa.

  4. På sidan Konfigurera det nya projektet anger du MathLibrary i rutan Projektnamn för att ange ett namn för projektet. Ange StaticMath i rutan Lösningsnamn . Välj knappen Skapa för att öppna dialogrutan Windows Desktop-projekt .

  5. I dialogrutan Windows Desktop-projekt går du till Programtyp och väljer Statiskt bibliotek (.lib).

  6. Under Ytterligare alternativ avmarkerar du kryssrutan Förkompilerad rubrik om den är markerad. Markera rutan Tomt projekt.

  7. Välj OK för att skapa projektet.

Skapa ett statiskt biblioteksprojekt i Visual Studio 2017

  1. På menyraden väljer du Arkiv>Nytt>projekt.

  2. I dialogrutan Nytt projekt väljer du Installerat>Visual C++>Windows Desktop. I mittenfönstret väljer du Guiden Windows Desktop.

  3. Ange ett namn för projektet, till exempel MathLibrary, i rutan Namn . Ange ett namn för lösningen, till exempel StaticMath, i rutan Lösningsnamn . Välj knappen OK.

  4. I dialogrutan Windows Desktop-projekt går du till Programtyp och väljer Statiskt bibliotek (.lib).

  5. Avmarkera kryssrutan Förkompilerad rubrik under Ytterligare alternativ om den är markerad. Markera rutan Tomt projekt.

  6. Välj OK för att skapa projektet.

Skapa ett statiskt biblioteksprojekt i Visual Studio 2015

  1. På menyraden väljer du Arkiv>Nytt>projekt.

  2. I dialogrutan Nytt projekt väljer du Installerade>mallar>Visual C++>Win32. I mittenfönstret väljer du Win32-konsolprogram.

  3. Ange ett namn för projektet, till exempel MathLibrary, i rutan Namn . Ange ett namn för lösningen, till exempel StaticMath, i rutan Lösningsnamn . Välj knappen OK.

  4. I guiden Win32-program väljer du Nästa.

  5. På sidan Programinställningar går du till Programtyp och väljer Statiskt bibliotek. Avmarkera kryssrutan Förkompilerad rubrik under Ytterligare alternativ. Välj Slutför för att skapa projektet.

Lägga till en klass i det statiska biblioteket

Så här lägger du till en klass i det statiska biblioteket

  1. Om du vill skapa en rubrikfil för en ny klass högerklickar du för att öppna snabbmenyn för MathLibrary-projektet i Solution Explorer och väljer sedan Lägg till>nytt objekt.

  2. I dialogrutan Lägg till nytt objekt väljer du Visual C++>Code. I mittenfönstret väljer du Rubrikfil (.h). Ange ett namn för rubrikfilen, till exempel MathLibrary.h, och välj sedan knappen Lägg till . En nästan tom rubrikfil visas.

  3. Lägg till en deklaration för en klass med namnet Arithmetic för att utföra vanliga matematiska åtgärder, till exempel addition, subtraktion, multiplikation och division. Koden bör likna:

    // 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. Om du vill skapa en källfil för den nya klassen öppnar du snabbmenyn för MathLibrary-projektet i Solution Explorer och väljer sedan Lägg till>nytt objekt.

  5. I dialogrutan Lägg till nytt objekt i mittenfönstret väljer du C++ Fil (.cpp). Ange ett namn på källfilen, till exempel MathLibrary.cpp, och välj sedan knappen Lägg till . En tom källfil visas.

  6. Använd den här källfilen för att implementera funktionen för klassen Arithmetic. Koden bör likna:

    // 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. Om du vill skapa det statiska biblioteket väljer du Skapa>bygglösning på menyraden. Bygget skapar ett statiskt bibliotek, MathLibrary.lib, som kan användas av andra program.

    Anmärkning

    När du bygger på Visual Studio-kommandoraden måste du skapa programmet i två steg. cl /c /EHsc MathLibrary.cpp Kör först för att kompilera koden och skapa en objektfil med namnet MathLibrary.obj. (Kommandot cl anropar kompilatorn Cl.exeoch /c alternativet anger kompilering utan länkning. Mer information finns i /c (Kompilera utan länkning).) För det andra kör du lib MathLibrary.obj för att länka koden och skapa det statiska biblioteket MathLibrary.lib. (Kommandot lib anropar bibliotekshanteraren Lib.exe. Mer information finns i LIB-referens.)

Skapa en C++-konsolapp som refererar till det statiska biblioteket

Skapa en C++-konsolapp som refererar till det statiska biblioteket i Visual Studio

  1. I Solution Explorer högerklickar du på den översta noden , Solution 'StaticMath', för att öppna snabbmenyn. Välj Lägg till>nytt projekt för att öppna dialogrutan Lägg till ett nytt projekt .

  2. Överst i dialogrutan anger du filtret Projekttyp till Konsol.

  3. I den filtrerade listan över projekttyper väljer du Konsolapp och sedan Nästa. På nästa sida anger du MathClient i rutan Namn för att ange ett namn för projektet.

  4. Välj knappen Skapa för att skapa klientprojektet.

  5. När du har skapat en konsolapp skapas ett tomt program åt dig. Namnet på källfilen är samma som det namn som du valde tidigare. I exemplet heter MathClient.cpp.

Skapa en C++-konsolapp som refererar till det statiska biblioteket i Visual Studio 2017

  1. I Solution Explorer högerklickar du på den översta noden , Solution 'StaticMath', för att öppna snabbmenyn. Välj Lägg till>nytt projekt för att öppna dialogrutan Lägg till ett nytt projekt .

  2. I dialogrutan Lägg till nytt projekt väljer du Installerat>Visual C++>Windows Desktop. I mittenfönstret väljer du Guiden Windows Desktop.

  3. Ange ett namn för projektet, till exempel MathClient, i rutan Namn . Välj knappen OK.

  4. I dialogrutan Windows-skrivbordsprojekt går du till Programtyp och väljer Konsolprogram (.exe).

  5. Avmarkera kryssrutan Förkompilerad rubrik under Ytterligare alternativ om den är markerad.

  6. Välj OK för att skapa projektet.

  7. När du har skapat en konsolapp skapas ett tomt program åt dig. Namnet på källfilen är samma som det namn som du valde tidigare. I exemplet heter MathClient.cpp.

Skapa en C++-konsolapp som refererar till det statiska biblioteket i Visual Studio 2015

  1. I Solution Explorer högerklickar du på den översta noden , Solution 'StaticMath', för att öppna snabbmenyn. Välj Lägg till>nytt projekt för att öppna dialogrutan Lägg till ett nytt projekt .

  2. I dialogrutan Lägg till nytt projekt väljer du Installerat>visuellt objekt C++>Win32. I mittenfönstret väljer du Win32-konsolprogram.

  3. Ange ett namn för projektet, till exempel MathClient, i rutan Namn . Välj knappen OK.

  4. I dialogrutan Win32-programguiden väljer du Nästa.

  5. På sidan Programinställningar under Programtyp kontrollerar du att konsolprogrammet är valt. Under Ytterligare alternativ avmarkerar du Förkompilerat huvud och markerar sedan kryssrutan Tomt projekt . Välj Slutför för att skapa projektet.

  6. Om du vill lägga till en källfil i det tomma projektet högerklickar du för att öppna snabbmenyn för MathClient-projektet i Solution Explorer och väljer sedan Lägg till>nytt objekt.

  7. I dialogrutan Lägg till nytt objekt väljer du Visual C++>Code. I mittenfönstret väljer du C++ Fil (.cpp). Ange ett namn för källfilen, till exempel MathClient.cpp, och välj sedan knappen Lägg till . En tom källfil visas.

Använda funktionerna från det statiska biblioteket i appen

Så här använder du funktionerna från det statiska biblioteket i appen

  1. Innan du kan använda matematiska rutiner i det statiska biblioteket måste du referera till det. Öppna snabbmenyn för MathClient-projektet i Solution Explorer och välj sedan Lägg till>referens.

  2. I dialogrutan Lägg till referens visas de bibliotek som du kan referera till. På fliken Projekt visas projekten i den aktuella lösningen och eventuella bibliotek som de refererar till. Öppna fliken Projekt , markera kryssrutan MathLibrary och välj sedan knappen OK .

  3. Om du vill referera till MathLibrary.h huvudfilen måste du ändra sökvägen till de inkluderade katalogerna. I Solution Explorer högerklickar du på MathClient för att öppna snabbmenyn. Välj Egenskaper för att öppna dialogrutan MathClient-egenskapssidor .

  4. I dialogrutan MathClient-egenskapssidor anger du listrutan Konfiguration till Alla konfigurationer. Ange listrutan Plattform till Alla plattformar.

  5. Välj egenskapssidan Konfigurationsegenskaper>C/C++>Allmänt . I egenskapen Ytterligare inkludera kataloger anger du sökvägen till katalogen MathLibrary eller bläddrar efter den.

    Så här bläddrar du efter katalogsökvägen:

    1. Öppna listrutan Ytterligare inkludera kataloger-egenskapsvärde och välj sedan Redigera.

    2. I dialogrutan Ytterligare inkludera kataloger dubbelklickar du överst i textrutan. Välj sedan ellipsknappen (...) i slutet av raden.

    3. I dialogrutan Välj katalog navigerar du upp på en nivå och väljer sedan katalogen MathLibrary . Välj sedan knappen Välj mapp för att spara ditt val.

    4. I dialogrutan Ytterligare inkludera kataloger väljer du knappen OK .

    5. I dialogrutan Egenskapssidor väljer du knappen OK för att spara ändringarna i projektet.

  6. Nu kan du använda Arithmetic-klassen i appen genom att inkludera #include "MathLibrary.h" headerfilen i koden. Ersätt innehållet i MathClient.cpp med den här koden:

    // 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. Om du vill skapa den körbara filen väljer du Skapa>bygglösning på menyraden.

Kör appen

Så här kör du appen

  1. Kontrollera att MathClient är valt som standardprojekt. Om du vill markera det högerklickar du för att öppna snabbmenyn för MathClient i Solution Explorer och väljer sedan Ange som startprojekt.

  2. Om du vill köra projektet går du till menyraden och väljer Felsöka>Start utan felsökning. Utdata bör likna:

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

Se även

Genomgång: Skapa och använda ett dynamiskt länkbibliotek (C++)