Przewodnik: tworzenie i używanie biblioteki statycznej

W tym przewodniku krok po kroku pokazano, jak utworzyć bibliotekę statyczną (plik lib) do użycia z aplikacjami języka C++. Używanie biblioteki statycznej to doskonały sposób ponownego użycia kodu. Zamiast ponownie implementować te same procedury w każdej aplikacji, która wymaga funkcjonalności, napisz je jeden raz w bibliotece statycznej, a następnie odwołaj się do niej z aplikacji. Kod połączony z biblioteką statyczną staje się częścią aplikacji. Nie musisz instalować innego pliku, aby użyć kodu.

W tym przewodniku omówiono następujące zadania:

Wymagania wstępne

Znajomość podstaw języka C++.

Tworzenie projektu biblioteki statycznej

Instrukcje dotyczące tworzenia projektu różnią się w zależności od używanej wersji programu Visual Studio. Aby zapoznać się z dokumentacją preferowanej wersji programu Visual Studio, użyj kontrolki selektora wersji . Znajduje się on w górnej części spisu treści na tej stronie.

Aby utworzyć projekt biblioteki statycznej w Visual Studio:

  1. Na pasku menu wybierz pozycję Plik>nowy>Project aby otworzyć okno dialogowe Tworzenie nowego project.

  2. W górnej części okna dialogowego ustaw Język na C++, ustaw Platforma na Windows i ustaw Typ projektu na Biblioteka.

  3. Z filtrowanej listy typów projektów wybierz pozycję Kreator Windows Desktop, a następnie wybierz przycisk Dalej.

  4. Na stronie Konfigurowanie nowego projektu wprowadź mathLibrary w polu Nazwa projektu, aby określić nazwę projektu. Wprowadź StaticMath w polu Nazwa rozwiązania. Wybierz przycisk Utwórz, aby otworzyć dialog Projekt Pulpitu Windows.

  5. W oknie dialogowym Windows Desktop Project w obszarze Typ aplikacji wybierz pozycję Biblioteka statyczna (.lib).

  6. W obszarze Dodatkowe opcje wyczyść pole wyboru Prekompilowany nagłówek , jeśli jest zaznaczone. Wybierz pozycję Pusty projekt.

  7. Wybierz przycisk OK , aby utworzyć projekt.

Aby utworzyć projekt biblioteki statycznej w Visual Studio 2017 r.:

  1. Na pasku menu wybierz pozycję Plik>Nowy>Projekt.

  2. W oknie dialogowym Nowy Project wybierz pozycję Zainstalowano program>Visual C++>Windows Desktop. W środkowym okienku wybierz pozycję Kreator pulpitu Windows.

  3. Określ nazwę projektu, taką jak MathLibrary, w polu Nazwa . Określ nazwę rozwiązania, na przykład StaticMath, w polu Nazwa rozwiązania . Wybierz pozycję OK.

  4. W oknie dialogowym Windows Desktop Project w obszarze Typ aplikacji wybierz pozycję Biblioteka statyczna (.lib).

  5. W obszarze Opcje dodatkowe wyczyść pole wyboru Prekompilowany nagłówek , jeśli jest zaznaczone. Wybierz pozycję Pusty projekt.

  6. Wybierz przycisk OK , aby utworzyć projekt.

Aby utworzyć projekt biblioteki statycznej w Visual Studio 2015 r.:

  1. Na pasku menu wybierz pozycję Plik>Nowy>Projekt.

  2. W oknie dialogowym Nowy Project wybierz pozycję Zainstalowane>szablony>Visual C++>Win32. W środkowym okienku wybierz pozycję Aplikacja konsolowa Win32.

  3. Określ nazwę projektu, taką jak MathLibrary, w polu Nazwa . Określ nazwę rozwiązania, na przykład StaticMath, w polu Nazwa rozwiązania . Wybierz pozycję OK.

  4. W Kreatorze aplikacji Win32 wybierz pozycję Dalej.

  5. Na stronie Ustawienia aplikacji w obszarze Typ aplikacji wybierz pozycję Biblioteka statyczna. W obszarze Dodatkowe opcje wyczyść pole wyboru Prekompilowany nagłówek . Wybierz pozycję Zakończ , aby utworzyć projekt.

Dodawanie klasy do biblioteki statycznej

Aby dodać klasę do biblioteki statycznej:

  1. Utwórz plik nagłówka dla nowej klasy. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MathLibrary, aby otworzyć menu kontekstowe projektu. Wybierz pozycję Dodaj>nowy element.

  2. W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Visual C++>Code. W środkowym okienku wybierz pozycję Plik nagłówka (.h). Określ nazwę pliku nagłówka, na przykład MathLibrary.h, a następnie wybierz pozycję Dodaj. Zostanie wyświetlony prawie pusty plik nagłówka.

  3. Dodaj deklarację dla klasy o nazwie Arithmetic , aby wykonywać typowe operacje matematyczne, takie jak dodawanie, odejmowanie, mnożenie i dzielenie. Kod powinien wyglądać podobnie do następującego:

    // 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. Aby utworzyć plik źródłowy dla nowej klasy, otwórz menu kontekstowe projektu MathLibrary w Eksplorator rozwiązań, a następnie wybierz pozycję Dodaj>nowy element.

  5. W oknie dialogowym Dodawanie nowego elementu w środkowym okienku wybierz pozycję Plik C++ (.cpp). Określ nazwę pliku źródłowego, na przykład MathLibrary.cpp. Następnie wybierz pozycję Dodaj. Zostanie wyświetlony pusty plik źródłowy.

  6. Użyj tego pliku źródłowego, aby zaimplementować funkcje klasy Arithmetic. Kod powinien wyglądać podobnie do następującego:

    // 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. Aby utworzyć bibliotekę statyczną, wybierz pozycję Utwórz>Rozwiązanie kompilacji na pasku menu. Kompilacja tworzy bibliotekę statyczną MathLibrary.lib, której mogą używać inne programy.

    Uwaga

    Podczas kompilacji w wierszu polecenia programu Visual Studio należy skompilować program w dwóch krokach.

    1. Uruchom polecenie cl /c /EHsc MathLibrary.cpp , aby skompilować kod i utworzyć plik obiektu o nazwie MathLibrary.obj. Polecenie cl wywołuje kompilator, Cl.exe, a /c opcja określa kompilowanie bez łączenia. Aby uzyskać więcej informacji, zobacz /c (Kompiluj bez łączenia).
    2. Uruchom polecenie , lib MathLibrary.obj aby połączyć kod i utworzyć bibliotekę statyczną MathLibrary.lib. Polecenie lib wywołuje Menedżera biblioteki Lib.exe. Aby uzyskać więcej informacji, zobacz LIB Reference (Dokumentacja LIB).

Tworzenie aplikacji konsolowej języka C++, która odwołuje się do biblioteki statycznej

Aby utworzyć aplikację konsolową języka C++, która odwołuje się do biblioteki statycznej w Visual Studio:

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy górny węzeł Rozwiązanie "StaticMath", aby otworzyć menu kontekstowe. Wybierz pozycję Dodaj>nowy projekt, aby otworzyć okno dialogowe Dodawanie nowego projektu.

  2. W górnej części okna dialogowego ustaw filtr Typ projektu na Konsola.

  3. Z filtrowanej listy typów projektów wybierz pozycję Aplikacja konsolowa, a następnie wybierz pozycję Dalej. Na następnej stronie wprowadź MathClient jako nazwę projektu.

  4. Wybierz pozycję Utwórz , aby utworzyć projekt klienta.

    Po utworzeniu aplikacji konsolowej zostanie dla ciebie utworzony pusty program. Nazwa pliku źródłowego jest taka sama jak nazwa wybrana wcześniej. W tym przykładzie, nazywa się MathClient.cpp.

Aby utworzyć aplikację konsolową języka C++, która odwołuje się do biblioteki statycznej w Visual Studio 2017 r.:

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy górny węzeł Rozwiązanie "StaticMath", aby otworzyć menu kontekstowe. Wybierz pozycję Dodaj>nowy projekt, aby otworzyć okno dialogowe Dodawanie nowego projektu.

  2. W oknie dialogowym Dodawanie nowego Project wybierz pozycję Zainstalowano program>Visual C++>Windows Desktop. W środkowym okienku wybierz pozycję Kreator pulpitu Windows.

  3. Określ nazwę projektu — na przykład MathClient — w polu Nazwa . Wybierz przycisk OK.

  4. W oknie dialogowym Windows Desktop Project w obszarze Typ aplikacji wybierz pozycję Aplikacja konsolowa (.exe).

  5. W obszarze Opcje dodatkowe wyczyść pole wyboru Prekompilowany nagłówek , jeśli jest zaznaczone.

  6. Wybierz przycisk OK , aby utworzyć projekt.

  7. Po utworzeniu aplikacji konsolowej zostanie dla ciebie utworzony pusty program. Nazwa pliku źródłowego jest taka sama jak nazwa wybrana wcześniej. W tym przykładzie, nazywa się MathClient.cpp.

Aby utworzyć aplikację konsolową języka C++, która odwołuje się do biblioteki statycznej w Visual Studio 2015 r.:

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy górny węzeł Rozwiązanie "StaticMath", aby otworzyć menu kontekstowe. Wybierz pozycję Dodaj>nowy projekt, aby otworzyć okno dialogowe Dodawanie nowego projektu.

  2. W oknie dialogowym Dodawanie nowego projektu wybierz Zainstalowane>Visual C++>Win32. W środkowym okienku wybierz pozycję Aplikacja konsolowa Win32.

  3. Określ nazwę projektu — na przykład MathClient — w polu Nazwa . Wybierz przycisk OK.

  4. W oknie dialogowym kreatora aplikacji Win32 wybierz Dalej.

  5. Na stronie Ustawienia aplikacji w obszarze Typ aplikacji upewnij się, że wybrano pozycję Aplikacja konsolowa. W obszarze Dodatkowe opcje wyczyść pole wyboru Prekompilowany nagłówek, a następnie wybierz pozycję Pusty projekt. Wybierz pozycję Zakończ , aby utworzyć projekt.

  6. Aby dodać plik źródłowy do pustego projektu, kliknij prawym przyciskiem myszy, aby otworzyć menu kontekstowe projektu MathClient w Eksplorator rozwiązań, a następnie wybierz polecenie Dodaj>nowy element.

  7. W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Visual C++>Code. W środkowym okienku wybierz pozycję Plik C++ (.cpp). Określ nazwę pliku źródłowego — na przykład MathClient.cpp , a następnie wybierz przycisk Dodaj . Zostanie wyświetlony pusty plik źródłowy.

Korzystanie z funkcji z biblioteki statycznej w aplikacji

Aby użyć funkcji z biblioteki statycznej w aplikacji:

  1. Przed użyciem procedur matematycznych w tej bibliotece należy odwołać się do biblioteki statycznej. Otwórz menu kontekstowe projektu MathClient w Eksplorator rozwiązań, a następnie wybierz pozycję Dodaj>odwołanie.

  2. Okno dialogowe Dodawanie odwołania zawiera listę bibliotek, do których można się odwoływać. Karta Projekty zawiera listę projektów w bieżącym rozwiązaniu i wszystkich bibliotek, do których się odwołują. Otwórz kartę Projekty , wybierz pozycję MathLibrary, a następnie wybierz przycisk OK.

  3. Zmodyfikuj ścieżkę dołączonych katalogów, aby odwołać się do pliku nagłówka MathLibrary.h . W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję MathClient, aby otworzyć menu kontekstowe. Wybierz polecenie Właściwości, aby otworzyć okno dialogowe Strony właściwości programu MathClient.

  4. W oknie dialogowym Strony właściwości MathClient ustaw wartość Konfiguracja na Wszystkie konfiguracje. Ustaw opcję Platform na Wszystkie platformy.

  5. Wybierz stronę właściwości KonfiguracjaC/C++Ogólne. W właściwości Dodatkowe katalogi dołączania określ ścieżkę katalogu MathLibrary lub wyszukaj go.

    Aby wyszukać ścieżkę katalogu:

    1. Otwórz listę rozwijaną właściwości Dodatkowe katalogi dołączania, a następnie wybierz Edytuj.

    2. W oknie dialogowym Dodatkowe katalogi dołączania dwukrotnie kliknij u góry pola tekstowego. Następnie wybierz przycisk wielokropka (...) na końcu wiersza.

    3. W oknie dialogowym Wybieranie katalogu przejdź do poziomu, a następnie wybierz katalog MathLibrary . Następnie wybierz przycisk Wybierz folder , aby zapisać wybór.

    4. W oknie dialogowym Dodatkowe katalogi dołączania wybierz przycisk OK.

    5. W oknie dialogowym Strony właściwości wybierz przycisk OK , aby zapisać zmiany w projekcie.

  6. Teraz możesz użyć klasy Arithmetic w tej aplikacji, włączając nagłówek #include "MathLibrary.h" w kodzie. Zastąp zawartość MathClient.cpp tego kodu następującym kodem:

    // 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. Aby zbudować plik wykonywalny, wybierz pozycję Kompiluj>Rozwiązanie na pasku menu.

Uruchom aplikację

Aby uruchomić aplikację:

  1. Upewnij się, że element MathClient jest wybrany jako projekt domyślny. Aby go zaznaczyć, kliknij prawym przyciskiem myszy obiekt MathClient w Eksplorator rozwiązań, aby otworzyć menu kontekstowe, a następnie wybierz polecenie Ustaw jako Project StartUp.

  2. Na pasku menu wybierz pozycję Debuguj>start bez debugowania , aby uruchomić projekt. Dane wyjściowe powinny wyglądać podobnie do następujących:

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

Zobacz też

Przewodnik: tworzenie i używanie biblioteki DLL (C++)