Share via


Création et utilisation d'une bibliothèque statique (C++)

Mise à jour : novembre 2007

Le type suivant de bibliothèque que nous allons créer est une bibliothèque statique (LIB). L'utilisation de bibliothèques statiques est une excellente façon de réutiliser le code. Au lieu d'implémenter les mêmes routines à chaque fois que vous créez un programme, vous les écrivez une fois pour toutes et vous les référencez dans les applications qui en ont besoin.

Cette procédure pas à pas couvre les sujets suivants :

  • Création d'un nouveau projet de bibliothèque statique.

  • Ajout d'une classe à la bibliothèque statique.

  • Création d'une application qui référence la bibliothèque statique.

  • Utilisation des fonctionnalités de la bibliothèque statique dans l'application console.

  • Exécution de l'application.

Composants requis

Cette rubrique suppose que vous comprenez les notions de base du langage C++. Si vous commencez juste dans l'apprentissage de C++, nous vous recommandons de consulter le guide « C++ Beginner's Guide » (en anglais) écrit par Herb Schildt, disponible en ligne à l'adresse https://go.microsoft.com/fwlink/?LinkId=115303.

Pour créer un nouveau projet de bibliothèque statique

  1. Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet....

  2. Dans le volet Types de projets, sous Visual C++, sélectionnez Win32.

  3. Dans le volet Modèles, sélectionnez Application console Win32.

  4. Choisissez un nom pour le projet, tel que MathFuncsLib, et saisissez-le dans le champ Nom. Choisissez un nom pour la solution, tel que StaticLibrary et saisissez-le dans le champ Nom de solution.

  5. Cliquez sur OK pour démarrer l'Assistant Application Win32. À partir de la page Vue d'ensemble de la boîte de dialogue Assistant Application Win32, appuyez sur Suivant.

  6. Dans la page Paramètres de l'application de l'Assistant Application Win32, sous Type d'application, sélectionnez Bibliothèque statique.

  7. Dans la page Paramètres de l'application de l' Assistant Application Win32, sous Options supplémentaires, désactivez la case à cocher Fichier d'en-tête précompilé.

  8. Cliquez sur Terminer pour créer le projet.

Ajout d'une classe à la bibliothèque statique

  1. Pour créer un fichier d'en-tête pour une nouvelle classe, dans le menu Projet, sélectionnez Ajouter un nouvel élément.... La boîte de dialogue Ajouter un nouvel élément s'affiche. À partir du volet Catégories, sous Visual C++, sélectionnez Code. Dans le volet Modèles, cliquez sur Fichier d'en-tête (.h). Choisissez un nom pour le fichier d'en-tête, tel que MathFuncsLib.h, et cliquez sur Ajouter. Un fichier vide sera affiché.

  2. Ajoutez une classe simple nommée MyMathFuncs pour effectuer des opérations mathématiques courantes, telles que l'addition, la soustraction, la multiplication et la division. Le code doit se présenter comme suit :

    // MathFuncsLib.h
    
    namespace MathFuncs
    {
        class MyMathFuncs
        {
        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
            // Throws DivideByZeroException if b is 0
            static double Divide(double a, double b);
        };
    }
    
  3. Pour créer un fichier source pour une nouvelle classe, dans le menu Projet, sélectionnez Ajouter un nouvel élément.... La boîte de dialogue Ajouter un nouvel élément s'affiche. À partir du volet Catégories, sous Visual C++, sélectionnez Code. Dans le volet Modèles, cliquez sur Fichier C++ (.cpp). Choisissez un nom pour le fichier source, tel que MathFuncsLib.cpp, et cliquez sur Ajouter. Un fichier vide sera affiché.

  4. Implémentez les fonctionnalités de MyMathFuncs dans le fichier source. Le code doit se présenter comme suit :

    // MathFuncsLib.cpp
    // compile with: /c /EHsc
    // post-build command: lib MathFuncsLib.obj
    
    #include "MathFuncsLib.h"
    
    #include <stdexcept>
    
    using namespace std;
    
    namespace MathFuncs
    {
        double MyMathFuncs::Add(double a, double b)
        {
            return a + b;
        }
    
        double MyMathFuncs::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double MyMathFuncs::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double MyMathFuncs::Divide(double a, double b)
        {
            if (b == 0)
            {
                throw new invalid_argument("b cannot be zero!");
            }
    
            return a / b;
        }
    }
    
  5. Pour générer le projet dans une bibliothèque statique, dans le menu Projet, sélectionnez MathFuncsLibPropriétés.... Dans le volet gauche, sous Propriétés de configuration, sélectionnez Général. Dans le volet droit, modifiez le Type de configuration en Bibliothèque statique (.lib). Cliquez sur OK pour enregistrer les modifications.

    Remarque :

    Lorsque vous générez un projet à partir de la ligne de commande, vous devez générer le programme en deux étapes. En premier lieu, compilez le code en utilisant Cl.exe avec l'option du compilateur /c (cl /c /EHsc MathFuncsLib.cpp). Cette commande crée un fichier objet nommé MathFuncsLib.obj. Pour plus d'informations, consultez /c (Compiler sans liaison). En second lieu, liez le code en utilisant le Gestionnaire de bibliothèques Lib.exe (lib MathFuncsLib.obj). Cela créera la bibliothèque statique MathFuncsLib.lib. Pour plus d'informations concernant le Gestionnaire de bibliothèques, consultez Référence LIB.

  6. Compilez la bibliothèque statique en sélectionnant Générer la solution dans le menu Générer. Cela crée une bibliothèque statique qui peut être utilisée par d'autres programmes.

Création d'une application qui référence la bibliothèque statique

  1. Pour créer une application qui référencera et utilisera la bibliothèque statique qui vient d'être créée, dans le menu Fichier, sélectionnez Nouveau, puis cliquez sur Projet.

  2. Dans le volet Types de projets, sous Visual C++, sélectionnez Win32.

  3. Dans le volet Modèles, sélectionnez Application console Win32.

  4. Choisissez un nom pour le projet, tel que MyExecRefsLib puis tapez-le dans le champ Nom. En regard de Solution, sélectionnez Ajouter à la solution dans la liste déroulante. Cela ajoutera le nouveau projet à la même solution que la bibliothèque statique.

  5. Cliquez sur OK pour démarrer l'Assistant Application Win32. À partir de la page Vue d'ensemble de la boîte de dialogue Assistant Application Win32, appuyez sur Suivant.

  6. dans la page Paramètres de l'application de l'Assistant Application Win32, sous Type d'application, sélectionnez Application console.

  7. Dans la page Paramètres de l'application de l' Assistant Application Win32, sous Options supplémentaires, désactivez la case à cocher Fichier d'en-tête précompilé.

  8. Cliquez sur Terminer pour créer le projet.

Utilisation des fonctionnalités de la bibliothèque statique dans l'application console

  1. Lorsque vous avez créé une nouvelle application console, l'Assistant crée un programme vide qui vous est destiné. Le nom du fichier source est identique au nom que vous avez choisi précédemment pour le projet. Dans cet exemple, il s'agit de MyExecRefsLib.cpp.

  2. Pour utiliser les routines mathématiques que vous avez créées dans la bibliothèque statique, vous devez référencer celle-ci. Pour ce faire, sélectionnez Références… dans le menu Projet. Dans la boîte de dialogue Pages de propriétés, développez le nœud Propriétés communes, puis sélectionnez Références. Sélectionnez ensuite le bouton Ajouter une nouvelle référence... Pour plus d'informations concernant la boîte de dialogue Références, consultez Structure et Références, Propriétés communes, boîte de dialogue Pages de propriétés de <NomProjet>.

  3. La boîte de dialogue Ajouter une référence s'affiche. Cette boîte de dialogue répertorie toutes les bibliothèques que vous pouvez référencer. L'onglet Projet répertorie tous les projets de la solution actuelle et toutes les bibliothèques qu'ils contiennent. Sous l'onglet Projets, sélectionnez MathFuncsLib. Puis cliquez sur OK. Pour plus d'informations concernant la boîte de dialogue Ajouter une référence, consultez Ajouter une référence, boîte de dialogue.

  4. Pour référencer les fichiers d'en-tête de la bibliothèque statique, vous devez modifier le chemin d'accès aux répertoires inclus. Pour cela, dans la boîte de dialogue Pages de propriétés, développez le nœud Propriétés de configuration, puis le nœud C/C++ et enfin sélectionnez Général. En regard de Autres répertoires inclus, tapez le chemin d'accès de l'emplacement du fichier d'en-tête MathFuncsLib.h.

  5. Vous pouvez maintenant utiliser la classe MyMathFuncs dans cette application. Remplacez le contenu de MyExecRefsLib.cpp par le code suivant :

    // MyExecRefsLib.cpp
    // compile with: /EHsc /link MathFuncsLib.lib
    
    #include <iostream>
    
    #include "MathFuncsLib.h"
    
    using namespace std;
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        cout << "a + b = " <<
            MathFuncs::MyMathFuncs::Add(a, b) << endl;
        cout << "a - b = " <<
            MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
        cout << "a * b = " <<
            MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
        cout << "a / b = " <<
            MathFuncs::MyMathFuncs::Divide(a, b) << endl;
    
        return 0;
    }
    
  6. Générez le fichier exécutable en sélectionnant Générer la solution dans le menu Générer.

Pour exécuter l'application

  1. Assurez-vous que MyExecRefsLib est sélectionné comme projet par défaut. Dans l'Explorateur de solutions, sélectionnez MyExecRefsLib, puis sélectionnez Définir comme projet de démarrage à partir du menu Projet.

  2. Pour exécuter le projet, sélectionnez Exécuter sans débogage dans le menu Débogage. La sortie doit ressembler à ceci :

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

Étapes suivantes

Précédent :Création et utilisation d'une bibliothèque de liens dynamiques (C++) | Suivant :Création et utilisation d'un assembly managé (C++)

Voir aussi

Tâches

Visite guidée de Visual C++

Déploiement de votre programme (C++)

Autres ressources

Méthodologies de programmation communes

Déploiement (C++)