Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 die gleichen Routinen in jeder App neu zu erstellen, die die Funktionalität erfordern, schreiben Sie sie einmal in einer statischen Bibliothek, und verweisen Sie dann aus den Apps darauf. Code, der aus einer statischen Bibliothek verknüpft ist, wird Teil Ihrer App. Sie müssen keine andere Datei installieren, um den Code zu verwenden.
In dieser Anleitung werden folgende Aufgaben behandelt:
Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist
Verwenden der Funktionalität der statischen Bibliothek in der App
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:
Wählen Sie auf der Menüleiste Datei>Neu>Projekt aus, um das Dialogfeld Neues Projekt erstellen zu öffnen.
Legen Sie oben im Dialogfeld die Sprache auf C++, die Plattform auf Windows und den Projekttyp auf Bibliothek fest.
Wählen Sie in der gefilterten Liste der Projekttypen Windows Desktop-Assistenten und dann "Weiter" aus.
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 StaticMath in das Feld Lösungsname ein. Klicken Sie auf die Schaltfläche Erstellen, um das Dialogfeld Windows-Desktopprojekt zu öffnen.
Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.
Deaktivieren Sie unter "Zusätzliche Optionen" das Kontrollkästchen "Vorkompilierte Kopfzeile ", wenn sie aktiviert ist. Wählen Sie "Leeres Projekt" aus.
Klicken Sie auf OK, um das Projekt zu erstellen.
So erstellen Sie ein statisches Bibliotheksprojekt in Visual Studio 2017:
Klicken Sie in der Menüleiste auf Datei>Neu>Projekt.
Wählen Sie im Dialogfeld Neues Projekt die Option Installiert>Visual C++> aus. Wählen Sie im mittleren Bereich Windows-Desktop-Assistent aus.
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 Lösung an, z. B. StaticMath. Wählen Sie OK aus.
Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.
Deaktivieren Sie unter "Zusätzliche Optionen" das Kontrollkästchen "Vorkompilierte Kopfzeile ", wenn sie aktiviert ist. Wählen Sie "Leeres Projekt" aus.
Klicken Sie auf OK, um das Projekt zu erstellen.
So erstellen Sie ein statisches Bibliotheksprojekt in Visual Studio 2015:
Klicken Sie in der Menüleiste auf Datei>Neu>Projekt.
Wählen Sie im Dialogfeld Neues ProjektInstallierte>Vorlagen>Visual C++>Win32 aus. Wählen Sie im mittleren Bereich Win32-Konsolenanwendungaus.
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 Lösung an, z. B. StaticMath. Wählen Sie OK aus.
Klicken Sie im Win32-Anwendungs-Assistenten auf Weiter.
Wählen Sie auf der Seite Anwendungseinstellungen unter AnwendungstypStatische Bibliothekaus. Deaktivieren Sie unter "Zusätzliche Optionen" das Kontrollkästchen "Vorkompilierte Kopfzeile" . 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:
Erstellen Sie eine Headerdatei für eine neue Klasse. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf MathLibrary, um das Kontextmenü für das Projekt zu öffnen. Klicken Sie dann auf Hinzufügen>Neues Element.
Wählen Sie im Dialogfeld " Neues Element hinzufügen " visual C++>Code aus. Wählen Sie im mittleren Bereich die Option Headerdatei (.h). Geben Sie einen Namen für die Headerdatei an, z. B. MathLibrary.h, und wählen Sie dann "Hinzufügen" aus. Eine nahezu leere Headerdatei wird angezeigt.
Fügen Sie eine Deklaration für eine Klasse mit dem Namen
Arithmetichinzu, 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); }; }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 Elementhinzufügen"> aus.
Wählen Sie im Dialogfeld " Neues Element hinzufügen " im mittleren Bereich C++-Datei (.cpp) aus. Geben Sie einen Namen für die Quelldatei an, z. B. MathLibrary.cpp. Wählen Sie dann Hinzufügen aus. Eine leere Quelldatei wird angezeigt.
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; } }Erstellen Sie die statische Bibliothek, indem Sie in der Menüleiste auf Erstellen>Projektmappe erstellen klicken. Der Build erstellt eine statische Bibliothek, MathLibrary.lib, die andere Programme verwenden können.
Hinweis
Beim Erstellen über die Befehlszeile von Visual Studio müssen Sie das Programm in zwei Schritten erstellen.
- Führen Sie
cl /c /EHsc MathLibrary.cppden Befehl aus, um den Code zu kompilieren und eine Objektdatei mit dem Namen MathLibrary.obj zu erstellen. DerclBefehl ruft den Compiler, Cl.exeauf, und die/cOption gibt die Kompilierung ohne Verknüpfung an. Weitere Informationen finden Sie unter /c (Kompilieren ohne Verknüpfung).For more information, see /c (Compile Without Linking). - Führen Sie die Ausführung aus
lib MathLibrary.obj, um den Code zu verknüpfen und die statische Bibliothek MathLibrary.lib zu erstellen. DerlibBefehl ruft den Bibliotheks-Manager Lib.exeauf. Weitere Informationen finden Sie unter LIB-Referenz.
- Führen Sie
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:
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den oberen Knoten ,Lösung 'StaticMath', um das Kontextmenü zu öffnen. Wählen Sie Hinzufügen>Neues Projekt aus, um das Dialogfeld Ein neues Projekt hinzufügen auszuwählen.
Legen Sie oben im Dialogfeld den Filter Projekttyp auf Konsole fest.
Wählen Sie aus der gefilterten Projekttypliste Konsolen-App aus, und klicken Sie auf Weiter. Geben Sie auf der nächsten Seite MathClient als Namen für das Projekt ein.
Wählen Sie "Erstellen" aus, um das Clientprojekt zu erstellen.
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.
So erstellen Sie eine C++-Konsolen-App, die auf die statische Bibliothek in Visual Studio 2017 verweist:
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den oberen Knoten ,Lösung 'StaticMath', um das Kontextmenü zu öffnen. Wählen Sie Hinzufügen>Neues Projekt aus, um das Dialogfeld Ein neues Projekt hinzufügen auszuwählen.
Wählen Sie im Dialogfeld „Neues Projekt hinzufügen“Installiert>> aus. Wählen Sie im mittleren Bereich Windows-Desktop-Assistent aus.
Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathClient. Klicken Sie auf die Schaltfläche OK .
Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Konsolenanwendung (.exe) aus.
Deaktivieren Sie unter "Zusätzliche Optionen" das Kontrollkästchen "Vorkompilierte Kopfzeile ", wenn sie aktiviert ist.
Klicken Sie auf OK, um das Projekt zu erstellen.
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.
So erstellen Sie eine C++-Konsolen-App, die auf die statische Bibliothek in Visual Studio 2015 verweist:
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf den oberen Knoten ,Lösung 'StaticMath', um das Kontextmenü zu öffnen. Wählen Sie Hinzufügen>Neues Projekt aus, um das Dialogfeld Ein neues Projekt hinzufügen auszuwählen.
Wählen Sie im Dialogfeld Neues Projekt hinzufügenInstalliert>Visual C++> aus. Wählen Sie im mittleren Bereich Win32-Konsolenanwendungaus.
Geben Sie im Feld Name einen Namen für das Projekt an, z. B. MathClient. Klicken Sie auf die Schaltfläche OK .
Klicken Sie im Dialogfeld Win32-Anwendungs-Assistent auf Weiter.
Stellen Sie sicher, dass auf der Seite Anwendungseinstellungen unter AnwendungstypKonsolenanwendung ausgewählt ist. Deaktivieren Sie unter Zusätzliche Optionen die Option Vorkompilierte Header, und wählen Sie dann Leeres Projekt aus. Klicken Sie auf Fertig stellen, um das Projekt zu erstellen.
Wenn Sie dem leeren Projekt eine Quelldatei hinzufügen möchten, klicken Sie mit der rechten Maustaste, um das Kontextmenü für das MathClient-Projekt in Projektmappen-Explorer zu öffnen, und wählen Sie dann "Neues Elementhinzufügen"> aus.
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 aus der statischen Bibliothek in der App:
Verweisen Sie auf die statische Bibliothek, bevor Sie die mathematischen Routinen darin verwenden. Öffnen Sie das Kontextmenü für das MathClient-Projekt in Projektmappen-Explorer, und wählen Sie dann "Verweishinzufügen"> aus.
Im Dialogfeld "Verweis hinzufügen " werden die Bibliotheken aufgelistet, auf die Sie verweisen können. Auf der Registerkarte Projekte sind die Projekte in der aktuellen Lösung sowie die Bibliotheken, auf die sie verweisen, aufgeführt. Öffnen Sie die Registerkarte "Projekte ", wählen Sie "MathLibrary" und dann "OK" aus.
Ändern Sie den eingeschlossenen Verzeichnissenpfad, um auf die
MathLibrary.hHeaderdatei zu verweisen. Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf MathClient, um das Kontextmenü zu öffnen. Wählen Sie Eigenschaften aus, um das Dialogfeld MathClient-Eigenschaftenseiten zu öffnen.Legen Sie im Dialogfeld " MathClient-Eigenschaftenseiten " den Konfigurationswert auf "Alle Konfigurationen" fest. Plattform aufalle Plattformen festlegen.
Navigieren Sie zur Eigenschaftenseite Konfigurationseigenschaften>C/C++>Allgemein. Geben Sie bei der Eigenschaft Zusätzliche Includeverzeichnisse den Pfad des MathLibrary-Verzeichnisses an, oder suchen Sie danach.
So suchen Sie nach dem Verzeichnispfad:
Öffnen Sie die Dropdownliste der Eigenschaftswerte von Zusätzliche Includeverzeichnisse, und wählen Sie dann Bearbeiten.
Doppelklicken Sie im Dialogfeld Zusätzliche Include-Verzeichnisse oben im Textfeld. Klicken Sie dann am Ende der Zeile auf die Schaltfläche mit den drei Punkten (...).
Navigieren Sie im Dialogfeld Select Directory eine Ebene nach oben, und wählen Sie dann das Verzeichnis MathLibrary aus. Klicken Sie anschließend auf die Schaltfläche Ordner auswählen, um Ihre Auswahl zu speichern.
Wählen Sie im Dialogfeld „Zusätzliche Include-Verzeichnisse“ die Schaltfläche „OK“ aus.
Wählen Sie im Dialogfeld "Eigenschaftenseiten " die Schaltfläche "OK " aus, um Die Änderungen am Projekt zu speichern.
Sie können nun die Klasse
Arithmeticin dieser App verwenden, indem Sie den Header#include "MathLibrary.h"in Ihrem Code verwenden. Ersetzen Sie den Inhalt vonMathClient.cppdurch 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; }Erstellen Sie die ausführbare Datei, indem Sie in der Menüleiste auf Erstellen>Lösung erstellen klicken.
Ausführen der App
So führen Sie die App aus:
Stellen Sie sicher, dass MathClient als Standardprojekt ausgewählt ist. Zum Auswählen klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf "MathClient", um das Kontextmenü zu öffnen, und wählen Sie dann "Als Startup Project festlegen" aus.
Wählen Sie in der Menüleiste Debug>Ohne Debugging starten aus, um das Projekt auszuführen. 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++)