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, należy napisać je jeden raz w bibliotece statycznej, a następnie odwołać 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 programie Visual Studio

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt, aby otworzyć okno dialogowe Tworzenie nowego projektu.

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

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

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

  5. W oknie dialogowym Projekt klasyczny systemu Windows w obszarze Typ aplikacji wybierz pozycję Biblioteka statyczna (.lib).

  6. W obszarze Opcje dodatkowe usuń zaznaczenie pola wyboru Prekompilowany nagłówek , jeśli jest zaznaczone. Zaznacz pole Pusty projekt.

  7. Wybierz przycisk OK , aby utworzyć projekt.

Aby utworzyć projekt biblioteki statycznej w programie Visual Studio 2017

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt.

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

  3. Określ nazwę projektu — na przykład MathLibrary — w polu Nazwa . Określ nazwę rozwiązania — na przykład StaticMath — w polu Nazwa rozwiązania. Wybierz przycisk OK.

  4. W oknie dialogowym Projekt klasyczny systemu Windows w obszarze Typ aplikacji wybierz pozycję Biblioteka statyczna (.lib).

  5. W obszarze Opcje dodatkowe usuń zaznaczenie pola wyboru Prekompilowany nagłówek , jeśli jest zaznaczone. Zaznacz pole Pusty projekt.

  6. Wybierz przycisk OK , aby utworzyć projekt.

Aby utworzyć projekt biblioteki statycznej w programie Visual Studio 2015

  1. Na pasku menu wybierz pozycję Plik>nowy>projekt.

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

  3. Określ nazwę projektu — na przykład MathLibrary — w polu Nazwa . Określ nazwę rozwiązania — na przykład StaticMath — w polu Nazwa rozwiązania. Wybierz przycisk OK.

  4. W Kreatorze aplikacji Win32 wybierz pozycję Dalej.

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

Dodawanie klasy do biblioteki statycznej

Aby dodać klasę do biblioteki statycznej

  1. Aby utworzyć plik nagłówka dla nowej klasy, kliknij prawym przyciskiem myszy, aby otworzyć menu skrótów dla projektu MathLibrary w Eksplorator rozwiązań, a następnie wybierz polecenie 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 przycisk 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 skrótów dla 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 , a następnie wybierz przycisk 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 skompilować bibliotekę statyczną, wybierz pozycję Kompiluj>rozwiązanie kompilacji na pasku menu. Kompilacja tworzy bibliotekę statyczną MathLibrary.lib, która może być używana przez inne programy.

    Uwaga

    Podczas kompilacji w wierszu polecenia programu Visual Studio należy skompilować program w dwóch krokach. Najpierw 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)). Następnie 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 programie Visual Studio

  1. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy górny węzeł Rozwiązanie "StaticMath", aby otworzyć menu skrótów. 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ź wartość MathClient w polu Nazwa , aby określić nazwę projektu.

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

  5. Po utworzeniu aplikacji konsolowej zostanie utworzony pusty program. Nazwa pliku źródłowego jest taka sama jak nazwa wybrana wcześniej. W tym przykładzie nazwa MathClient.cppto .

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

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

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

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

  4. W oknie dialogowym Projekt klasyczny systemu Windows w obszarze Typ aplikacji wybierz pozycję Aplikacja konsolowa (.exe).

  5. W obszarze Opcje dodatkowe usuń zaznaczenie pola wyboru Prekompilowany nagłówek , jeśli jest zaznaczone.

  6. Wybierz przycisk OK , aby utworzyć projekt.

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

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

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

  2. W oknie dialogowym Dodawanie nowego projektu wybierz pozycję 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 Kreator aplikacji Win32 wybierz pozycję Dalej.

  5. Na stronie Aplikacja Ustawienia w obszarze Typ aplikacji upewnij się, że wybrano pozycję Aplikacja konsolowa. W obszarze Opcje dodatkowe usuń zaznaczenie pola wyboru Prekompilowany nagłówek, a następnie zaznacz pole wyboru 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 skrótów dla 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. Aby można było używać procedur matematycznych w bibliotece statycznej, należy się do niej odwołać. Otwórz menu skrótów dla 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, zaznacz pole wyboru MathLibrary, a następnie wybierz przycisk OK.

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

  4. W oknie dialogowym MathClient Property Pages (Strony właściwości MathClient) ustaw listę rozwijaną Konfiguracja na Wszystkie konfiguracje. Ustaw listę rozwijaną Platforma na Wszystkie platformy.

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

    Aby przejść do ścieżki katalogu:

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

    2. W oknie dialogowym Dodatkowe katalogi dołączania kliknij dwukrotnie w górnej części 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ć Arithmetic klasy w tej aplikacji, dołączając #include "MathLibrary.h" nagłówek 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 skompilować plik wykonywalny, wybierz pozycję Kompiluj>rozwiązanie kompilacji 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, aby otworzyć menu skrótów dla klasy MathClient w Eksplorator rozwiązań, a następnie wybierz polecenie Ustaw jako projekt startowy.

  2. Aby uruchomić projekt, na pasku menu wybierz pozycję Debuguj>rozpocznij bez debugowania. 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 dołączanej dynamicznie (C++)