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.
Une DLL (bibliothèque de liens dynamiques) est une bibliothèque qui contient du code et des données qui peuvent être utilisées par plusieurs applications. Vous pouvez utiliser Visual Studio pour créer, générer, configurer et déboguer des DLL.
Créer une DLL
Les modèles de projet Visual Studio suivants peuvent créer des DLL :
- Bibliothèque de classes (.NET, .NET Framework et d’autres plateformes d’application)
- Bibliothèque de contrôles Windows Forms (.NET et .NET Framework)
- bibliothèque Dynamic-Link (DLL) (C++)
Le débogage d’une bibliothèque de contrôles Windows Forms est similaire au débogage d’une bibliothèque de classes. Pour plus d’informations, consultez Contrôles Windows Forms.
Vous appelez généralement une DLL à partir d’un autre projet. Quand vous déboguez le projet appelant, en fonction de la configuration DLL, vous pouvez effectuer un pas à pas détaillé du code DLL et le déboguer.
Configuration de débogage DLL
Lorsque vous utilisez un modèle de projet Visual Studio pour créer une application, Visual Studio crée automatiquement les paramètres requis pour les configurations de build Debug et Release. Vous pouvez modifier ces paramètres si nécessaire. Pour plus d’informations, consultez les articles suivants :
- Comment : Définir des configurations de Debug et de Release
- Paramètres du projet pour une configuration de débogage C++
- Paramètres de projet pour les configurations de débogage C# .NET
- Paramètres du projet pour les configurations de débogage C#
- Paramètres de projet pour une configuration de débogage Visual Basic
Définir C++ DebuggableAttribute
Pour que le débogueur s’attache à une DLL C++, le code C++ doit émettre DebuggableAttribute.
Pour définir DebuggableAttribute:
Sélectionnez le projet DLL C++ dans l’Explorateur de solutions , puis sélectionnez l’icône Propriétés , ou cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.
Dans le volet Propriétés, sousÉditeur de liens>Débogage, sélectionnez Oui (/ASSEMBLYDEBUG) pour Assembly débogable.
Pour plus d’informations, consultez /ASSEMBLYDEBUG.
Définir les emplacements des fichiers DLL C/C++
Pour déboguer une DLL externe, un projet appelant doit être en mesure de trouver la DLL, son fichier .pdb et tous les autres fichiers requis par la DLL. Vous pouvez créer une tâche de génération personnalisée pour copier ces fichiers dans votre <dossier> de projet\Dossier de sortie Debug , ou vous pouvez copier les fichiers manuellement.
Pour les projets C/C++, vous pouvez définir des emplacements d’en-tête et de fichier LIB dans les pages de propriétés du projet, au lieu de les copier dans le dossier de sortie.
Pour définir l’en-tête C/C++ et les emplacements des fichiers LIB :
Sélectionnez le projet DLL C/C++ dans l’Explorateur de solutions , puis sélectionnez l’icône Propriétés , ou cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.
En haut du volet Propriétés , sous Configuration, sélectionnez Toutes les configurations.
Sous C/C++>Général>Répertoires Include supplémentaires, spécifiez le dossier qui a les fichiers d’en-tête.
Sous Éditeur de liens>Général>, Répertoires de bibliothèques supplémentaires, spécifiez le dossier contenant des fichiers LIB.
Sous Editeur de liens>Entrée>Dépendances supplémentaires, spécifiez le chemin d’accès complet et le nom de fichier des fichiers LIB.
Cliquez sur OK.
Pour plus d’informations sur les paramètres du projet C++, consultez la référence de la page de propriétés Windows C++.
Générer une version Debug
Veillez à générer une version de débogage de la DLL avant de commencer le débogage. Pour déboguer une DLL, une application appelante doit être en mesure de trouver son fichier .pdb et tous les autres fichiers requis par la DLL. Pour plus d’informations, consultez How to : Set Debug and Release configurations.
Vous pouvez créer une tâche de génération personnalisée pour copier les fichiers DLL dans votre <dossier> de projet appelant\Dossier de sortie Debug , ou vous pouvez copier les fichiers manuellement.
Veillez à appeler la DLL dans le bon emplacement. Cela peut sembler évident, mais si une application appelante trouve et charge une autre copie de la DLL, le débogueur n’atteint jamais les points d’arrêt que vous définissez.
Déboguer une DLL
Vous ne pouvez pas exécuter directement une DLL. Il doit être appelé par une application, généralement un fichier .exe .
Pour déboguer une DLL, vous pouvez démarrer le débogage à partir de l’application appelante ou déboguer à partir du projet DLL en spécifiant son application appelante. Vous pouvez également utiliser la fenêtre Immédiate du débogueur pour évaluer les fonctions ou méthodes DLL durant la phase de conception, sans utiliser d'application appelante.
Démarrer le débogage à partir de l’application appelante
L’application qui appelle une DLL peut être :
- Application à partir d’un projet Visual Studio dans la même solution ou une solution différente de la DLL.
- Application existante déjà déployée et en cours d’exécution sur un ordinateur de test ou de production.
- Situé sur le web et accessible via une URL.
- Application web avec une page web qui incorpore la DLL.
Avant de commencer à déboguer l’application appelante, définissez un point d’arrêt dans la DLL. Consultez Bien démarrer avec les points d’arrêt. Lorsque le point d’arrêt DLL est atteint, vous pouvez parcourir le code en observant l’action à chaque ligne. Pour plus d’informations, consultez Naviguer dans le code dans le débogueur.
Pour déboguer une DLL à partir d’une application appelante, vous pouvez :
Ouvrez le projet pour l’application appelante, puis démarrez le débogage en sélectionnant Démarrer>le débogage ou en appuyant sur F5.
ou
Attachez-vous à une application déjà déployée et en cours d’exécution sur un ordinateur de test ou de production. Utilisez cette méthode pour les DLL sur des sites web ou dans des applications web. Pour plus d’informations, consultez Procédure : Attacher à un processus en cours d’exécution.
Pendant le débogage, vous pouvez utiliser la fenêtre Modules pour vérifier les DLL et .exe fichiers que l’application charge. Pour ouvrir la fenêtre Modules, lors du débogage, sélectionnez Déboguer>Windows>Modules. Pour plus d’informations, consultez Procédure : utiliser la fenêtre Modules.
Utiliser la fenêtre Immédiate
Vous pouvez utiliser la fenêtre Exécution pour évaluer les fonctions ou méthodes DLL au moment du design. La fenêtre Exécution joue le rôle d’une application appelante.
Remarque
Vous pouvez utiliser la fenêtre Immédiate pendant la phase de conception avec la plupart des types de projet. Il n’est pas pris en charge pour SQL, les projets web ou les scripts.
Par exemple, pour tester une méthode nommée Test dans la classe Class1:
Avec le projet DLL ouvert, ouvrez la fenêtre Immédiat en sélectionnant Déboguer>Windows>Immédiat ou en appuyant sur Ctrl+Alt+I.
Instanciez un objet de type
Class1en tapant le code C# suivant dans la fenêtre Exécution et en appuyant sur Entrée. Ce code managé fonctionne pour C# et Visual Basic, avec les modifications de syntaxe appropriées :Class1 obj = new Class1();En C#, tous les noms doivent être qualifiés complets. Toutes les méthodes ou variables doivent se trouver dans l’étendue et le contexte actuels lorsque le service de langage tente d’évaluer l’expression.
En supposant que
Testaccepte unintparamètre, évaluezTestà l'aide de la fenêtre Immédiat :?obj.Test(10);Le résultat s’imprime dans la fenêtre Immédite.
Vous pouvez continuer à déboguer
Testen plaçant un point d’arrêt à l’intérieur de celui-ci, puis en évaluant à nouveau la fonction.Le point d’arrêt est atteint et vous pouvez exécuter un pas à pas de
Test. Une fois que l’exécution a quittéTest, le débogueur repasse en mode Création.
Débogage en mode mixte
Vous pouvez écrire une application appelante pour une DLL dans du code managé ou natif. Si votre application native appelle une DLL managée et que vous souhaitez déboguer les deux, vous pouvez activer les débogueurs managés et natifs dans les propriétés du projet. Le processus exact varie selon que vous souhaitez démarrer le débogage à partir du projet DLL ou du projet d’application appelant. Pour plus d’informations, consultez Guide pratique pour déboguer en mode mixte.
Vous pouvez également déboguer une DLL native à partir d’un projet d’appel managé. Pour plus d’informations, consultez Comment déboguer du code managé et natif.
Contenu connexe
- Déboguer du code managé
- Préparer le débogage des projets C++
- types de projet C#, F# et Visual Basic
- Paramètres du projet pour une configuration de débogage C++
- Paramètres de projet pour les configurations de débogage C# .NET
- Paramètres du projet pour les configurations de débogage C#
- Paramètres du projet pour une configuration de débogage Visual Basic
- Sécurité du débogueur