Les fichiers DLL sont des bibliothèques de fonctions liées dynamiquement qui sont la plupart du temps codées en C++. Elles permettent le partage des fonctions qu'elles contiennent entre plusieurs applications, et de ce fait, simplifient l'écriture du code des programmes qui les utiliseront. Vous pourrez créer ces bibliothèques en utilisant Visual Studio pour Windows ou Visual Studio pour Mac. Prenez soin de cocher la case intitulée Développement d'applications de bureau avec C++ lorsque vous installerez cet outil. Si vous avez déjà installé ce logiciel votre système sans avoir coché cette case au préalable, il vous sera préférable de relancer l'installation pour être certain que ce soit fait.
Étapes
-
Ouvrez Visual Studio. Vous pourrez accéder à l'environnement Visual Studio avec le menu de démarrage du système ou le dossier des applications. Un fichier DLL étant une bibliothèque d'informations, elle ne se composera que d'un seul projet et aura généralement besoin d'une application capable d'y accéder pour pouvoir en effectuer les tests.
- Vous pourrez télécharger Visual Studio pour Windows sur le site https://docs.microsoft.com/fr-fr/visualstudio/install/install-visual-studio?view=vs-2019 .
- Visual studio pour Mac sera disponible sur https://docs.microsoft.com/fr-fr/visualstudio/mac/installation?view=vsmac-2019 .
- Afin de vous expliquer comment créer une bibliothèque DLL, nous utiliserons dans cet article des portions de code fournies par Microsoft.
-
Cliquez l'onglet Fichier . Si vous êtes sous Windows, vous le trouverez au-dessus de l'espace des projets, et sous Mac, vous le verrez en haut de votre écran.
-
Cliquez sur Nouveau puis sur Projet . Vous verrez s'afficher une boite de dialogue intitulée Créer un nouveau projet .
-
Réglez les options Langage , Plateforme et Type de projet . Elles serviront à filtrer les gabarits des projets qui seront proposés.
- Cliquez sur Langage . Vous verrez s'afficher un menu déroulant sur lequel vous devrez sélectionner C++ .
-
Cliquez sur Plateforme . Vous verrez s'afficher un nouveau menu déroulant sur lequel vous devrez sélectionner l'option Windows .
-
Cliquez sur Type de projet . Vous verrez s'afficher un autre menu déroulant dans lequel vous devrez sélectionner l'option Bibliothèque .
-
Cliquez sur Bibliothèque liée dynamiquement (DLL) . Vous verrez votre choix se surligner en bleu. Cliquez sur Continuer pour aller plus loin.
-
Donnez un nom à votre projet. Dans la boite d'entrée de texte, tapez le nom que vous voulez donner à votre projet, comme MathLibrary .
-
Cliquez le bouton Créer . Ceci aura pour effet de générer votre projet de création de bibliothèque DLL.
-
Ajoutez un fichier d'entête à votre bibliothèque. Vous pourrez le faire en cliquant sur l'onglet Projet de la barre de menus puis en sélectionnant l'option Ajouter un élément :
- sélectionnez l'option Visual C++ dans le menu de gauche de la boite de dialogues ;
- sélectionnez Fichier d'entête (.h) au centre de la boite de dialogues ;
- tapez le nom MathLibrary.h dans le champ d'entrée de texte qui se trouve au-dessous des menus de sélection ;
- générez un fichier d'entête vide en cliquant sur Ajouter .
-
Tapez le code qui suit dans votre fichier d'entête :
- Cette portion de code a été fournie par le site de support de Microsoft.
// MathLibrary.h – Contient les déclarations de fonctions mathématiques #pragma once #ifdef MATHLIBRARY_EXPORTS #define MATHLIBRARY_API __declspec(dllexport) #else #define MATHLIBRARY_API __declspec(dllimport) #endif // La relation de récurrence de Fibonacci définit une séquence F // où F(n) est { n = 0, a // { n = 1, b // { n > 1, F(n-2) + F(n-1) // pour des valeurs initiales entières a et b. // Si la séquence est initialisée à F(0) = 1, F(1) = 1, // cette relation produit la suite bien connue de Fibonacci // suite : 1, 1, 2, 3, 5, 8, 13, 21, 34... // Initialisation d'une suite récurrente de Fibonacci // telle que F(0) = a, F(1) = b. // Cette fonction doit être appelée avant toute autre fonction. extern "C" MATHLIBRARY_API void fibonacci_init ( const unsigned long long a , const unsigned long long b ); // Calcul de la prochaine valeur de la séquence. // Renvoie « vrai » en cas de succès et met à jour les valeurs et index courants ; // retourne « faux » en cas de dépassement et laisse inchangés les valeurs et index courants. extern "C" MATHLIBRARY_API bool fibonacci_next (); //Calcul de la valeur courante de la séquence. extern "C" MATHLIBRARY_API unsigned long long fibonacci_current (); //Calcul de la position de la valeur courante dans la séquence. extern "C" MATHLIBRARY_API unsigned fibonacci_index ();
-
Ajoutez un fichier CPP à votre DLL. Vous pourrez le faire en cliquant sur l'onglet Projet de la barre de menus puis en sélectionnant l'option Ajouter un élément :
- sélectionnez Visual C++ dans le menu de gauche de la boite de dialogues ;
- sélectionnez Fichier C++ (.cpp) au centre de la boite de dialogues ;
- tapez le nom MathLibrary.cpp dans le champ d'entrée de texte qui se trouve au-dessous des menus de sélection ;
- générez le fichier CPP vide en cliquant sur Ajouter .
-
Saisissez le code qui suit dans le nouveau fichier vide.
- Cette portion de code a été fournie par le site de support de Microsoft.
// MathLibrary.cpp : ce code définit les fonctions exportables de la bibliothèque DLL. #include "stdafx.h" // on doit utiliser la fonction pch.h de Visual Studio 2019 #include <utility> #include <limits.h> #include "MathLibrary.h" // Variables des états internes de la DLL : static unsigned long long previous_ ; // Valeur précédente si elle existe static unsigned long long current_ ; // Valeur courante de la séquence static unsigned index_ ; // Position de l'index courant // On initialise une suite de Fibonacci // telle que F(0) = a, F(1) = b. // Cette fonction devra être appelée avant toute autre fonction. void fibonacci_init ( const unsigned long long a , const unsigned long long b ) { index_ = 0 ; actuel_ = a ; anterieur_ = b ; // Voir les cas particuliers d'initialisation } //Calcul de la prochaine valeur de la séquence. //doit retourner vrai en cas de succès et faux en cas de débordement. bool fibonacci_next () { //On vérifie s'il y a eu débordement du résultat ou de l'index if (( ULLONG_MAX - anterieur_ < actuel_ ) || ( UINT_MAX == index_ )) { return false ; } //Cas particulier si l'index est égal à 0 : la valeur de b sera retournée. if ( index_ > 0 ) { //sinon on calcule la valeur suivante de la séquence anterieur_ += actuel_ ; } std :: swap ( actuel_ , anterieur_ ); ++ index_ ; return true ; } //Calculer la valeur courante de la séquence. unsigned long long fibonacci_current () { return actuel_ ; } //calculer la position de l'index courant dans la séquence. unsigned fibonacci_index () { return index_ ; }
-
Cliquez sur Construire dans la barre de menus. Sous Windows, vous trouverez ce bouton au-dessus de l'espace de travail du projet, et vous le trouverez en haut de votre écran si vous êtes sous Mac.
-
Cliquez sur Générer la Solution . Lorsque vous aurez cliqué sur ce bouton, vous verrez s'afficher sur votre écran un texte énumérant à peu près ce qui suit :
- Si la création de votre bibliothèque s'est effectuée avec succès, c'est le texte que vous verrez s'afficher, mais si elle a échoué, vous verrez s'afficher une liste des erreurs auxquelles vous devrez remédier avant de continuer [1] X Source de recherche .
1 >------ Construction démarrée : Projet : MathLibrary , Configuration : Débogage Win32
1 > MathLibrary . cpp 1 > dllmain . cpp 1 > Génération du code ... 1 > Création de la bibliothèque C : \ Users \ Utilisateur \ Source \ Repos \ MathLibrary \ Debug \ MathLibrary . lib et objet C : \ Users \ Utilisateur \ Source \ Repos \ MathLibrary \ Debug \ MathLibrary . exp 1 > MathLibrary . vcxproj -> C : \ Users \ Utilisateur \ Source \ Repos \ MathLibrary \ Debug \ MathLibrary . dll 1 > MathLibrary . vcxproj -> C : \ Users \ Utilisateur \ Source \ Repos \ MathLibrary \ Debug \ MathLibrary . pdb ( PDB partiel ) ========== Création : 1 avec succès , 0 é chec , 0 mis à jour , 0 passé ==========Publicité