Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
Le type suivant de bibliothèque que nous allons créer est un assembly managé. L'utilisation d'assemblys managés 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 projet de bibliothèque de classes.
Ajout d'une classe à la bibliothèque de classes.
Création d'une application qui référence la bibliothèque de classes.
Utilisation des fonctionnalités de la bibliothèque de classes 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 de classes
Dans le menu Fichier, sélectionnez Nouveau, puis Projet....
Dans le volet Types de projets, sous Visual C++, sélectionnez CLR. Cela crée un projet qui cible le Common Language Runtime.
Dans le volet Modèles, sélectionnez Bibliothèque de classes.
Choisissez un nom pour le projet, tel que MathFuncsAssembly et tapez-le dans le champ Nom. Choisissez un nom pour la solution, tel que ManagedAssemblies et tapez-le dans le champ Nom de solution.
Cliquez sur OK pour créer le projet.
Par défaut, lors de la création de nouveaux projets, ceux-ci sont configurés pour utiliser des en-têtes précompilés. Pour désactiver l'en-tête précompilé, sélectionnez Propriétés dans le menu Projet. Développez le nœud Propriétés de configuration, le nœud C/C++ puis sélectionnez En-têtes précompilés. Dans la liste déroulante à côté de Création/utilisation d'un en-tête précompilé, sélectionnez Sans utiliser les en-têtes précompilés. Cliquez sur OK pour enregistrer les modifications. Pour plus d'informations sur les en-têtes précompilés, consultez Création de fichiers d'en-tête précompilés.
Ajout d'une classe à la bibliothèque de classes
Après la création d'une nouvelle Bibliothèque de classes CLR, l'Assistant génère une classe simple à votre intention. Les noms du fichier d'en-tête et du fichier source seront identiques à celui que vous avez choisi précédemment pour le projet. Dans cet exemple, ils sont nommés MathFuncsAssembly.h et MathFuncsAssembly.cpp.
Remplacez le code existant dans MathFuncsAssembly.h par une classe simple nommée MyMathFuncsAssembly 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 :
// MathFuncsAssembly.h using namespace System; namespace MathFuncs { public ref 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); }; }Implémentez les fonctionnalités de MyMathFuncs au fichier source. Le code doit se présenter comme suit :
// MathFuncsAssembly.cpp // compile with: /clr /LD #include "MathFuncsAssembly.h" 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 gcnew DivideByZeroException("b cannot be zero!"); } return a / b; } }Compilez la bibliothèque de classes en sélectionnant Générer la solution dans le menu Générer. Cela crée une bibliothèque de liens dynamiques (DLL) qui peut être utilisée par d'autres programmes. Pour plus d'informations sur les DLL, consultez DLL.
Création d'une application qui référence la bibliothèque de classes
Pour créer une application qui référencera et utilisera la bibliothèque de classes que vous venez de créer, dans le menu Fichier, sélectionnez Nouveau, puis cliquez sur Projet....
Dans le volet Types de projets, sous Visual C++, sélectionnez CLR. Cela crée un projet qui a pour cible le Common Language Runtime.
Dans le volet Modèles, sélectionnez Application console CLR.
Choisissez un nom pour le projet, tel que MyExecRefsAssembly et 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 de classes.
Cliquez sur OK pour créer le projet.
Par défaut, lors de la création de nouveaux projets, ceux-ci sont configurés pour utiliser des en-têtes précompilés. Pour désactiver l'en-tête précompilé, sélectionnez Propriétés dans le menu Projet. Développez le nœud Propriétés de configuration, le nœud C/C++ puis sélectionnez En-têtes précompilés. Dans la liste déroulante à côté de Création/utilisation d'un en-tête précompilé, sélectionnez Sans utiliser les en-têtes précompilés. Cliquez sur OK pour enregistrer les modifications. Pour plus d'informations sur les en-têtes précompilés, consultez Création de fichiers d'en-tête précompilés.
Utilisation des fonctionnalités de la bibliothèque de classes dans l'application console
Après la création d'une nouvelle application console CLR, un programme est créé pour votre usage, qui écrit simplement "Hello World" dans la console. Le nom du fichier source sera identique au nom que vous avez choisi pour le projet ci-dessus. Dans cet exemple, il est nommé MyExecRefsAssembly.cpp.
Pour utiliser les routines mathématiques créées dans la bibliothèque de classe, vous devez les référencer. 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, sélectionnez Références, puis le bouton Ajouter une nouvelle référence. Pour plus d'informations sur 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>.
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 .NET répertorie les bibliothèques incluses avec le .NET Framework. L'onglet COM répertorie tous les composants COM présents sur votre ordinateur. 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 MathFuncsAssembly puis cliquez sur OK. Pour plus d'informations sur la boîte de dialogue Ajouter une référence, consultez Ajouter une référence, boîte de dialogue.
Remarque :Vous pouvez référencer directement un assembly depuis le fichier source en incluant la directive #using, comme dans #using <MathFuncsAssembly.dll>. Pour plus d'informations sur cette directive, consultez The #using Directive.
Vous pouvez maintenant utiliser la classe MyMathFuncs dans cette application. Dans MyExecRefsAssembly.cpp, remplacez le contenu de la fonction du fichier par le code suivant :
// MyExecRefsAssembly.cpp // compile with: /clr /FUMathFuncsAssembly.dll using namespace System; int main(array<System::String ^> ^args) { double a = 7.4; int b = 99; Console::WriteLine("a + b = {0}", MathFuncs::MyMathFuncs::Add(a, b)); Console::WriteLine("a - b = {0}", MathFuncs::MyMathFuncs::Subtract(a, b)); Console::WriteLine("a * b = {0}", MathFuncs::MyMathFuncs::Multiply(a, b)); Console::WriteLine("a / b = {0}", MathFuncs::MyMathFuncs::Divide(a, b)); return 0; }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
Assurez-vous que MyExecRefsAssembly est sélectionné comme projet par défaut. Dans l'Explorateur de solutions, sélectionnez MyExecRefsAssembly, puis sélectionnez Définir comme projet de démarrage dans le menu Projet.
Pour exécuter le projet, sélectionnez Exécuter sans débogage dans le menu Débogage. La sortie doit se présenter comme suit :
a + b = 106.4 a - b = -91.6 a * b = 732.6 a / b = 0.0747474747474748
Étapes suivantes
Précédent :Création et utilisation d'une bibliothèque statique (C++) | Suivant :Après la visite guidée (C++)