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:
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 in der Menüleiste DateiNeu Project aus, um das Dialogfeld Create a New Project (Neue Project erstellen) zu öffnen.
Legen Sie oben im Dialogfeld Sprache auf C++fest, legen Sie Plattform auf Windowsund Project Typ auf Bibliothekfest.
Wählen Sie aus der gefilterten Projekttypliste Windows-Desktopassistent aus, und klicken Sie auf Weiter.
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.
Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.
Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, wenn es aktiviert ist. Aktivieren Sie das Feld bei Leeres Projekt.
Klicken Sie auf OK, um das Projekt zu erstellen.
Erstellen eines statischen Bibliotheksprojekts in Visual Studio 2017
Wählen Sie auf der Menüleiste DateiNeuProjectaus.
Wählen Sie im Dialogfeld Neue Project die Option InstalliertVisual C++Windows Desktopaus. 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 Projektmappe an, z. B. StaticMath. Klicken Sie auf die Schaltfläche OK .
Wählen Sie im Dialogfeld Windows-Desktopprojekt unter Anwendungstyp den Eintrag Statische Bibliothek (.lib) aus.
Deaktivieren Sie unter Zusätzliche Optionen das Kontrollkästchen bei Vorkompilierter Header, wenn es aktiviert ist. Aktivieren Sie das Feld bei Leeres Projekt.
Klicken Sie auf OK, um das Projekt zu erstellen.
Erstellen eines statischen Bibliotheksprojekts in Visual Studio 2015
Wählen Sie auf der Menüleiste DateiNeuProjectaus.
Wählen Sie im Dialogfeld Neue Project die Option InstallierteVorlagenVisual C++Win32aus. 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 Projektmappe an, z. B. StaticMath. Klicken Sie auf die Schaltfläche OK .
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 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
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.
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.
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); }; }
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.
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.
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; } }
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 Namencl /c /EHsc MathLibrary.cpp
zu erstellen. (Dercl
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 Bibliotheklib MathLibrary.obj
zu erstellen. (Mit demlib
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
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.
Legen Sie oben im Dialogfeld für den Filter ProjekttypKonsole fest.
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.
Klicken Sie auf die Schaltfläche Erstellen, 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
.
Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist, in Visual Studio 2017
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.
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.
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 bei Vorkompilierter Header, wenn es 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
.
Erstellen einer Konsolen-App in C++, die auf die statische Bibliothek verweist, in Visual Studio 2015
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.
Wählen Sie im Dialogfeld Project hinzufügen die Option Installiert 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. 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 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.
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.
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
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.
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.
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.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.
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:
Öffnen Sie die Dropdownliste für Eigenschaftswerte Zusätzliche Includeverzeichnisse, und klicken Sie dann auf Bearbeiten.
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 ( ... ).
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.
Klicken Sie im Dialogfeld Zusätzliche Includeverzeichnisse auf die Schaltfläche OK.
Klicken Sie im Dialogfeld Eigenschaftenseiten auf die Schaltfläche OK, um Ihre Änderungen am Projekt zu speichern.
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 vonMathClient.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; }
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
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.
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++)