Procédure pas à pas : créer et utiliser une bibliothèque statique

Cette procédure pas à pas montre comment créer une bibliothèque statique (fichier .lib) à utiliser avec des applications C++. L’utilisation d’une bibliothèque statique est un excellent moyen de réutiliser le code. Au lieu d’implémenter les mêmes routines dans chaque application qui requiert les fonctionnalités, vous les écrivez une fois pour toutes dans une bibliothèque statique et vous y faites référence dans les applications. Le code lié à partir d’une bibliothèque statique devient partie intégrante de votre application. Il n’est pas nécessaire d’installer un autre fichier pour utiliser le code.

Cette procédure pas à pas couvre les tâches suivantes :

Prérequis

Une connaissance des notions de base du langage C++.

Créer un projet de bibliothèque statique

Les instructions pour créer le projet varient en fonction de votre version de Visual Studio. Pour consulter la documentation sur votre version préférée de Visual Studio, utilisez le contrôle de sélection de Version . Il se trouve en haut de la table des matières de cette page.

Pour créer un projet de bibliothèque statique dans Visual Studio

  1. Dans la barre de menus, choisissez Fichier>Nouveau>Projet pour ouvrir la boîte de dialogue Créer un projet.

  2. En haut de la boîte de dialogue, définissez Langage sur C++ , Plateforme sur Windows et Type de projet sur Bibliothèque.

  3. À partir de la liste filtrée des types de projets, sélectionnez Assistant Windows Desktop, puis choisissez Suivant.

  4. Dans la page Configurer votre nouveau projet, entrez MathLibrary dans la zone Nom du projet pour spécifier un nom pour le projet. Entrez StaticMath dans la zone Nom de la solution. Cliquez sur le bouton Créer pour ouvrir la boîte de dialogue Projet Windows Desktop.

  5. Dans la boîte de dialogue Projet Windows Desktop, sous Type d’application, sélectionnez Bibliothèque statique (.lib).

  6. Sous Options supplémentaires, décochez la case En-tête précompilé si elle est cochée. Cochez la case Projet vide.

  7. Cliquez sur OK pour créer le projet.

Pour créer un projet de bibliothèque statique dans Visual Studio 2017

  1. Dans la barre de menus, choisissez Fichier>Nouveau>Projet.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez Installé>Visual C++>Windows Desktop. Dans le volet central, sélectionnez Assistant Windows Desktop.

  3. Spécifiez un nom pour le projet, par exemple MathLibrary, dans la zone Nom. Spécifiez un nom pour la solution, par exemple StaticMath, dans la zone Nom de la solution. Cliquez sur le bouton OK.

  4. Dans la boîte de dialogue Projet Windows Desktop, sous Type d’application, sélectionnez Bibliothèque statique (.lib).

  5. Sous Options supplémentaires, décochez la case En-tête précompilé si elle est cochée. Cochez la case Projet vide.

  6. Cliquez sur OK pour créer le projet.

Pour créer un projet de bibliothèque statique dans Visual Studio 2015

  1. Dans la barre de menus, choisissez Fichier>Nouveau>Projet.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez Installé>Modèles>Visual C++>Win32. Dans le volet central, sélectionnez Application console Win32.

  3. Spécifiez un nom pour le projet, par exemple MathLibrary, dans la zone Nom. Spécifiez un nom pour la solution, par exemple StaticMath, dans la zone Nom de la solution. Cliquez sur le bouton OK.

  4. Dans l’Assistant Application Win32, choisissez Suivant.

  5. Dans la page Paramètres de l’application, sous Type d’application, sélectionnez Bibliothèque statique. Sous Options supplémentaires, décochez la case En-tête précompilé. Cliquez sur Terminer pour créer le projet.

Ajouter une classe à la bibliothèque statique

Pour ajouter une classe à la bibliothèque statique

  1. Pour créer un fichier d’en-tête pour une nouvelle classe, cliquez avec le bouton droit pour ouvrir le menu contextuel du projet MathLibrary dans l’Explorateur de solutions, puis sélectionnez Ajouter>Nouvel élément.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Visual C++>Code. Dans le volet central, sélectionnez Fichier d’en-tête (.h). Spécifiez un nom pour le fichier d’en-tête, par exemple MathLibrary.h, puis sélectionnez le bouton Ajouter. Un fichier d’en-tête pratiquement vide s’affiche.

  3. Ajoutez une déclaration pour une classe nommée Arithmetic pour effectuer des opérations mathématiques courantes, comme l’addition, la soustraction, la multiplication et la division. Le code doit se présenter comme suit :

    // 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. Pour créer un fichier source pour la nouvelle classe, ouvrez le menu contextuel du projet MathLibrary dans l’Explorateur de solutions, puis sélectionnez Ajouter>Nouvel élément.

  5. Dans le volet central de la boîte de dialogue Ajouter un nouvel élément, sélectionnez Fichier C++ (.cpp). Spécifiez un nom pour le fichier source, par exemple MathLibrary.cpp, puis sélectionnez le bouton Ajouter. Un fichier source vide s’affiche.

  6. Utilisez ce fichier source pour implémenter les fonctionnalités pour la classe Arithmetic. Le code doit se présenter comme suit :

    // 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. Pour générer la bibliothèque statique, sélectionnez Générer>Générer la solution dans la barre de menus. La build crée une bibliothèque statique, MathLibrary.lib, qui peut être utilisée par d’autres programmes.

    Remarque

    Lorsque vous générez un projet sur la ligne de commande Visual Studio, vous devez générer le programme en deux étapes. Commencez par exécuter cl /c /EHsc MathLibrary.cpp pour compiler le code et pour créer un fichier objet nommé MathLibrary.obj. (La commande cl appelle le compilateur, Cl.exe, et l'option /c spécifie la compilation sans liaison.) Pour plus d’informations, consultez /c (Compiler sans liaison).) Ensuite, exécutez lib MathLibrary.obj pour lier le code et créer la bibliothèque statique MathLibrary.lib. (La commande lib appelle le gestionnaire de bibliothèque Lib.exe. Pour plus d’informations, consultez LIB Reference.)

Créer une application console C++ qui fait référence à la bibliothèque statique

Pour créer une application console C++ qui fait référence à la bibliothèque statique dans Visual Studio

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud supérieur, Solution « StaticMath », pour ouvrir le menu contextuel. Choisissez Ajouter>Nouveau projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet.

  2. En haut de la boîte de dialogue, définissez le filtre Type de projet sur Console.

  3. À partir de la liste des types de projets, choisissez Application console, puis choisissez Suivant. Dans la page suivante, entrez MathClient dans la zone Nom pour donner un nom au projet.

  4. Choisissez le bouton Créer pour créer le projet client.

  5. Une fois que vous avez créé une application console, un programme vide est créé à votre intention. Le nom du fichier source est identique au nom que vous avez choisi précédemment. Dans l’exemple, il est nommé MathClient.cpp.

Pour créer une application de console C++ qui fait référence à la bibliothèque statique dans Visual Studio 2017

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud supérieur, Solution « StaticMath », pour ouvrir le menu contextuel. Choisissez Ajouter>Nouveau projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet.

  2. Dans la boîte de dialogue Ajouter un nouveau projet, sélectionnez Installé>Visual C++>Windows Desktop. Dans le volet central, sélectionnez Assistant Windows Desktop.

  3. Spécifiez un nom pour le projet, par exemple MathClient, dans la zone Nom. Cliquez sur le bouton OK.

  4. Dans la boîte de dialogue Projet Windows Desktop, sous Type d’application, sélectionnez Application console (.exe).

  5. Sous Options supplémentaires, décochez la case En-tête précompilé si elle est cochée.

  6. Cliquez sur OK pour créer le projet.

  7. Une fois que vous avez créé une application console, un programme vide est créé à votre intention. Le nom du fichier source est identique au nom que vous avez choisi précédemment. Dans l’exemple, il est nommé MathClient.cpp.

Pour créer une application de console C++ qui fait référence à la bibliothèque statique dans Visual Studio 2015

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud supérieur, Solution « StaticMath », pour ouvrir le menu contextuel. Choisissez Ajouter>Nouveau projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet.

  2. Dans la boîte de dialogue Ajouter un nouveau projet, sélectionnez Installé>Visual C++>Win32. Dans le volet central, sélectionnez Application console Win32.

  3. Spécifiez un nom pour le projet, par exemple MathClient, dans la zone Nom. Cliquez sur le bouton OK.

  4. Dans la boîte de dialogue Assistant Application Win32, choisissez Suivant.

  5. Dans la page Paramètre d'application, sous Type d’application, vérifiez que Application console est sélectionné. Sous Options supplémentaires, décochez En-tête précompilé, puis cochez la case Projet vide. Cliquez sur Terminer pour créer le projet.

  6. Pour ajouter un fichier source au projet vide, cliquez avec le bouton droit pour ouvrir le menu contextuel du projet MathClient dans l’Explorateur de solutions, puis choisissez Ajouter>Nouvel élément.

  7. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Visual C++>Code. Dans le volet central, sélectionnez Fichier C++ (.cpp). Spécifiez un nom pour le fichier source, par exemple MathClient.cpp, puis sélectionnez le bouton Ajouter. Un fichier source vide s’affiche.

Utiliser les fonctionnalités de la bibliothèque statique dans l’application

Pour utiliser les fonctionnalités de la bibliothèque statique dans l’application

  1. Avant de pouvoir utiliser les routines mathématiques dans la bibliothèque statique, vous devez la référencer. Ouvrez le menu contextuel du projet MathClient dans l’Explorateur de solutions, puis choisissez Ajouter>Référence.

  2. La boîte de dialogue Ajouter une référence répertorie les bibliothèques que vous pouvez référencer. L’onglet Projets répertorie tous les projets de la solution actuelle et toutes les bibliothèques qu’ils référencent. Sous l’onglet Projets, cochez la case MathLibrary, puis sélectionnez le bouton OK.

  3. Pour faire référence au fichier d’en-tête MathLibrary.h, vous devez modifier le chemin des répertoires inclus. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur MathClient pour ouvrir le menu contextuel. Choisissez Propriétés pour ouvrir la boîte de dialogue Pages de propriétés MathClient.

  4. Dans la boîte de dialogue Pages de propriétés MathClient, définissez la liste déroulante Configuration sur Toutes les configurations. Définissez la liste déroulante Plateforme sur Toutes les plateformes.

  5. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Général. Dans la propriété Autres répertoires Include, spécifiez le chemin d’accès du répertoire MathLibrary ou recherchez-le.

    Pour rechercher le chemin d’accès au répertoire :

    1. Ouvrez la liste déroulante des valeurs de propriété Autres répertoires Include, puis choisissez Modifier.

    2. Dans la boîte de dialogue Autres répertoires Include, double-cliquez en haut de la zone de texte. Cliquez ensuite sur le bouton points de suspension (...) à la fin de la ligne.

    3. Dans la boîte de dialogue Sélectionner un répertoire, montez d’un niveau, puis sélectionnez le répertoire MathLibrary. Cliquez ensuite sur le bouton Sélectionner un dossier pour enregistrer votre sélection.

    4. Dans la boîte de dialogue Autres répertoires Include, cliquez sur le bouton OK.

    5. Dans la boîte de dialogue Pages de propriété, cliquez sur le bouton OK pour enregistrer les changements que vous avez apportés au projet.

  6. Vous pouvez maintenant utiliser la classe Arithmetic dans cette application en incluant l’en-tête #include "MathLibrary.h" dans votre code. Remplacez le contenu de MathClient.cpp par ce 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. Pour générer l’exécutable, choisissez Générer>Générer la solution dans la barre de menus.

Exécuter l’application

Pour exécuter l’application

  1. Vérifiez que MathClient est sélectionné comme projet par défaut. Pour le sélectionner, cliquez avec le bouton droit pour ouvrir le menu contextuel de MathClient dans l’Explorateur de solutions, puis choisissez Définir comme projet de démarrage.

  2. Pour exécuter le projet, dans la barre de menus, choisissez Déboguer>Démarrer sans débogage. La sortie doit ressembler à ceci :

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

Voir aussi

Procédure pas à pas : création et utilisation d’une bibliothèque de liens dynamiques (C++)