Exemplarische Vorgehensweise: Erstellen und Verwenden einer statischen Bibliothek

In dieser schrittweise erläuterten exemplarischen Vorgehensweise wird die Erstellung einer statischen Bibliothek (LIB-Datei) für die Verwendung mit C++-Apps erläutert. Die Verwendung einer statischen Bibliothek stellt eine gute Möglichkeit zur Wiederverwendung von Code dar. Anstatt in jeder App, für die eine bestimmte Funktion erforderlich ist, die gleichen Routinen immer wieder zu implementieren, schreiben Sie sie einmal in eine statische Bibliothek und verweisen dann in den Apps darauf. Code in einer statischen Bibliothek, auf den verwiesen wird, wird Teil der App. Sie müssen keine andere Datei installieren, um den Code zu verwenden.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben behandelt:

Voraussetzungen

Grundlegende Kenntnisse der Programmiersprache C++.

Erstellen eines statischen Bibliotheksprojekts

Die Anweisungen für das Erstellen des Projekts variieren abhängig von Ihrer Version von Visual Studio. Um die Dokumentation für Ihre bevorzugte Version von Visual Studio anzuzeigen, verwenden Sie das Auswahlsteuerelement Version. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.

So erstellen Sie ein statisches Bibliotheksprojekt in Visual Studio

  1. Wählen Sie in der Menüleiste DateiNeu Project aus, um das Dialogfeld Create a New Project (Neue Project erstellen) zu öffnen.

  2. Legen Sie oben im Dialogfeld Sprache auf C++fest, legen Sie Plattform auf Windowsund Project Typ auf Bibliothekfest.

  3. Wählen Sie aus der gefilterten Projekttypliste Windows-Desktopassistent aus, und klicken Sie auf Weiter.

  4. Geben Sie auf der Seite Neues Projekt konfigurieren in das Feld Projektname den Namen MathLibrary ein, um einen Namen für das Projekt festzulegen. Geben Sie in das Feld Projektmappenname den Namen StaticMath ein. Klicken Sie auf die Schaltfläche Erstellen, um das Dialogfeld Windows-Desktopprojekt zu öffnen.

  5. Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.

  6. Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, wenn es aktiviert ist. Aktivieren Sie das Feld bei Leeres Projekt.

  7. Klicken Sie auf OK, um das Projekt zu erstellen.

Erstellen eines statischen Bibliotheksprojekts in Visual Studio 2017

  1. Wählen Sie auf der Menüleiste DateiNeuProjectaus.

  2. Wählen Sie im Dialogfeld Neue Project die Option InstalliertVisual C++Windows Desktopaus. Wählen Sie im mittleren Bereich Windows-Desktop-Assistent aus.

  3. Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathLibrary. Geben Sie im Feld Projektmappenname einen Namen für die Projektmappe an, z. B. StaticMath. Klicken Sie auf die Schaltfläche OK .

  4. Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.

  5. Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, wenn es aktiviert ist. Aktivieren Sie das Feld bei Leeres Projekt.

  6. Klicken Sie auf OK, um das Projekt zu erstellen.

Erstellen eines statischen Bibliotheksprojekts in Visual Studio 2015

  1. Wählen Sie auf der Menüleiste DateiNeuProjectaus.

  2. Wählen Sie im Dialogfeld Neue Project die Option InstallierteVorlagenVisual C++Win32aus. Wählen Sie im mittleren Bereich Win32-Konsolenanwendungaus.

  3. Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathLibrary. Geben Sie im Feld Projektmappenname einen Namen für die Projektmappe an, z. B. StaticMath. Klicken Sie auf die Schaltfläche OK .

  4. Klicken Sie im Win32-Anwendungs-Assistenten auf Weiter.

  5. Wählen Sie auf der Seite Anwendungseinstellungen unter AnwendungstypStatische Bibliothekaus. Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header. Klicken Sie auf Fertig stellen, um das Projekt zu erstellen.

Hinzufügen einer Klasse zur statischen Bibliothek

So fügen Sie der statischen Bibliothek eine Klasse hinzu

  1. Um eine Headerdatei für eine neue Klasse zu erstellen, klicken Sie mit der rechten Maustaste, um das Kontextmenü für das MathLibrary-Projekt in Projektmappen-Explorerzu öffnen, und wählen Sie dann Neues Element hinzufügenaus.

  2. Wählen Sie im Dialogfeld Neues Element hinzufügen dieOption Visual C++ Codeaus. Wählen Sie im mittleren Bereich die Option Headerdatei (.h) . Geben Sie einen Namen für die Headerdatei an, z. B. MathLibrary.h, und klicken Sie auf die Schaltfläche Hinzufügen. Eine nahezu leere Headerdatei wird angezeigt.

  3. Fügen Sie eine Deklaration für eine Klasse mit dem Namen Arithmetic hinzu, die zur Ausführung geläufiger mathematischer Operationen wie Addition, Subtraktion, Multiplikation und Division dient. Der Code sollte diesem ähneln:

    // 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. Um eine Quelldatei für die neue Klasse zu erstellen, öffnen Sie das Kontextmenü für das MathLibrary-Projekt in Projektmappen-Explorer, und wählen Sie dann Neues Element hinzufügenaus.

  5. Klicken Sie im mittleren Bereich des Dialogfelds Neues Element hinzufügen auf C++-Datei (.cpp) . Geben Sie einen Namen für die Quelldatei an, z. B. MathLibrary.cpp, und klicken Sie auf die Schaltfläche Hinzufügen. Eine leere Quelldatei wird angezeigt.

  6. Verwenden Sie diese Quelldatei zum Implementieren der Funktionalität für die Klasse Arithmetic. Der Code sollte diesem ähneln:

    // 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. Klicken Sie auf der Menüleiste aufProjektmappe erstellen, um die statische Bibliothek zu erstellen. Dadurch wird eine statische Bibliothek erstellt, MathLibrary.lib, die in anderen Programmen verwendet werden kann.

    Hinweis

    Beim Erstellen über die Befehlszeile von Visual Studio müssen Sie das Programm in zwei Schritten erstellen. Führen Sie zunächst aus, cl /c /EHsc MathLibrary.cpp um den Code zu kompilieren und eine Objektdatei mit dem Namen cl /c /EHsc MathLibrary.cppzu erstellen. (Der cl Befehl ruft den Compiler auf, Cl.exe, und die Option gibt die /c Kompilierung ohne Verknüpfung an. Weitere Informationen finden Sie unter /c (Kompilieren ohne Verknüpfung).) Führen Sie anschließend aus, lib MathLibrary.obj um den Code zu verknüpfen und die statische Bibliothek lib MathLibrary.objzu erstellen. (Mit dem lib Befehl wird der Bibliotheks-Manager, "Lib.exe", aufgerufen. Weitere Informationen finden Sie unter LIB Reference.)

Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist

So erstellen Sie eine C++-Konsolen-App, die auf die statische Bibliothek in Visual Studio verweist

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den obersten Knoten, die Projektmappe „StaticMath“ , um das Kontextmenü zu öffnen. Wählen SieNeue Project hinzufügen aus, um das Dialogfeld Neue Project hinzufügen zu öffnen.

  2. Legen Sie oben im Dialogfeld für den Filter ProjekttypKonsole fest.

  3. Wählen Sie aus der gefilterten Projekttypliste Konsolen-App aus, und klicken Sie auf Weiter. Geben Sie auf der nächsten Seite im Feld NameMathClient als Projektnamen an.

  4. Klicken Sie auf die Schaltfläche Erstellen, um das Clientprojekt zu erstellen.

  5. Nach dem Erstellen einer Konsolenanwendung wird ein leeres Programm für Sie erstellt. Die Quelldatei erhält denselben Namen, den Sie zuvor ausgewählt haben. In diesem Beispiel heißt sie MathClient.cpp.

Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist, in Visual Studio 2017

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den obersten Knoten, die Projektmappe „StaticMath“ , um das Kontextmenü zu öffnen. Wählen SieNeue Project hinzufügen aus, um das Dialogfeld Neue Project hinzufügen zu öffnen.

  2. Wählen Sie im Dialogfeld Neue Project hinzufügen die Option InstalliertVisual C++Windows Desktopaus. Wählen Sie im mittleren Bereich Windows-Desktop-Assistent aus.

  3. Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathClient. Klicken Sie auf die Schaltfläche OK .

  4. Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Konsolenanwendung (.exe) aus.

  5. Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, wenn es aktiviert ist.

  6. Klicken Sie auf OK, um das Projekt zu erstellen.

  7. Nach dem Erstellen einer Konsolenanwendung wird ein leeres Programm für Sie erstellt. Die Quelldatei erhält denselben Namen, den Sie zuvor ausgewählt haben. In diesem Beispiel heißt sie MathClient.cpp.

Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist, in Visual Studio 2015

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den obersten Knoten, die Projektmappe „StaticMath“ , um das Kontextmenü zu öffnen. Wählen Sie AddNew Project (Neue Option hinzufügen) aus, um das Dialogfeld Neue Project zu öffnen.

  2. Wählen Sie im Dialogfeld Project hinzufügen die Option Installiert Visual C++Win32 aus. Wählen Sie im mittleren Bereich Win32-Konsolenanwendungaus.

  3. Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathClient. Klicken Sie auf die Schaltfläche OK .

  4. Klicken Sie im Dialogfeld Win32-Anwendungs-Assistent auf Weiter.

  5. Stellen Sie sicher, dass auf der Seite Anwendungseinstellungen unter AnwendungstypKonsolenanwendung ausgewählt ist. Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, und aktivieren Sie dann das Kontrollkästchen bei Leeres Projekt. Klicken Sie auf Fertig stellen, um das Projekt zu erstellen.

  6. Um dem leeren Projekt eine Quelldatei hinzuzufügen, klicken Sie mit der rechten Maustaste, um das Kontextmenü für das MathClient-ProjektinProjektmappen-Explorer zu öffnen, und wählen Sie dann NeuesElement hinzufügen aus.

  7. Wählen Sie im Dialogfeld Neues Element hinzufügen Visual C++ Code aus. Wählen Sie im mittleren Bereich die Option C++-Datei (.cpp) . Geben Sie einen Namen für die Quelldatei an, z. B. MathClient.cpp, und klicken Sie auf die Schaltfläche Hinzufügen. Eine leere Quelldatei wird angezeigt.

Verwenden der Funktionalität der statischen Bibliothek in der App

So verwenden Sie die Funktionalität der statischen Bibliothek in der App

  1. Bevor Sie die mathematischen Routinen verwenden können, müssen Sie auf die erstellte statische Bibliothek verweisen. Öffnen Sie das Kontextmenü für das MathClient-Projekt in Projektmappen-Explorer, und wählen Sie dann Verweishinzufügen aus.

  2. Im Dialogfeld Verweis hinzufügen werden Bibliotheken aufgeführt, auf die Sie verweisen können. Auf der Registerkarte Projekte sind die Projekte in der aktuellen Projektmappe aufgeführt sowie die Bibliotheken, auf die in ihnen verwiesen wird. Öffnen Sie die Registerkarte Projekte, aktivieren Sie das Kontrollkästchen bei MathLibrary, und klicken Sie dann auf die Schaltfläche OK.

  3. Wenn Sie auf die Headerdatei MathLibrary.h verweisen möchten, müssen Sie den enthaltenen Verzeichnispfad ändern. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf MathClient, um das Kontextmenü zu öffnen. Klicken Sie auf Eigenschaften, um das Dialogfeld MathClient Eigenschaftenseiten zu öffnen.

  4. Wählen Sie im Dialogfeld MathClient Eigenschaftenseiten in der Dropdownliste Konfiguration die Option Alle Konfigurationen aus. Wählen Sie in der Dropdownliste Plattform die Option Alle Plattformen aus.

  5. Wählen Sie die EigenschaftenseiteKonfigurationseigenschaften C/C++Allgemein aus. Geben Sie bei der Eigenschaft Zusätzliche Includeverzeichnisse den Pfad des MathLibrary-Verzeichnisses an, oder suchen Sie danach.

    So suchen Sie nach dem Verzeichnispfad:

    1. Öffnen Sie die Dropdownliste für Eigenschaftswerte Zusätzliche Includeverzeichnisse, und klicken Sie dann auf Bearbeiten.

    2. Doppelklicken Sie im Dialogfeld Zusätzliche Includeverzeichnisse in den oberen Bereich des Textfelds. Klicken Sie dann am Ende der Zeile auf die Schaltfläche mit den drei Punkten ( ... ).

    3. Navigieren Sie im Dialogfeld Verzeichnis auswählen eine Ebene weiter nach oben, und klicken Sie dann auf das MathLibrary-Verzeichnis. Klicken Sie anschließend auf die Schaltfläche Ordner auswählen, um Ihre Auswahl zu speichern.

    4. Klicken Sie im Dialogfeld Zusätzliche Includeverzeichnisse auf die Schaltfläche OK.

    5. Klicken Sie im Dialogfeld Eigenschaftenseiten auf die Schaltfläche OK, um Ihre Änderungen am Projekt zu speichern.

  6. Sie können nun die Klasse Arithmetic in dieser App verwenden, indem Sie den Header #include "MathLibrary.h" in Ihrem Code verwenden. Ersetzen Sie den Inhalt von MathClient.cpp durch den folgenden Code:

    // 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. Klicken Sie zum Erstellen der ausführbaren Datei auf der Menüleiste auf Projektmappe erstellen.

Ausführen der App

So führen Sie die App aus

  1. Stellen Sie sicher, dass MathClient als Standardprojekt ausgewählt ist. Öffnen Sie per Rechtsklick das Kontextmenü für das Projekt MathClient im Projektmappen-Explorer, und klicken Sie dann auf Als Startprojekt festlegen, um es als Standardprojekt auszuwählen.

  2. Klicken Sie zum Ausführen des Projekts auf der Menüleiste aufDebuggen Starten ohne Debuggen. Die Ausgabe sollte in etwa wie folgt aussehen:

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

Siehe auch

Exemplarische Vorgehensweise: Erstellen und Verwenden einer Dynamic Link Library (C++)
Desktopanwendungen (Visual C++)