2009-07-16 4 views
3

J'utilise Visual Studio 2008 (C++) et j'aimerais produire une liste de toutes les classes définies dans ce projet. Est-ce que quelqu'un sait des outils qui extraient ceux facilement?Production d'une liste de toutes les classes dans un projet C++

Un simple «Trouver dans les fichiers» ne sera pas suffisant, bien sûr. Edit: La liste des classes devrait être créée automatiquement et le résultat devrait être un simple fichier de noms de classes (une classe par ligne).

Répondre

12

Doxygen fera cela et en charge plus. C'est un très bon outil pour produire toutes sortes de documents

3

Vous pouvez parcourir toutes les classes etc. de votre projet dans la fenêtre Vue de la classe (View > Class View). Vous pouvez même créer vos propres dossiers et organiser les classes pour créer votre propre structure. Par exemple. vous pouvez créer des dossiers nommés Refactor, Unused, Suspect, etc.

Vous ne pouvez pas imprimer la vue de classe, mais le navigateur peut toujours vous être utile.

2

Vous pouvez utiliser un outil tel que ctags pour produire un fichier de balises contenant cette information de classe.

EDIT: Je viens de vérifier cette ligne de commande ctags.exe dans l'éditeur Zeus et il semble faire ce que vous avez besoin:

ctags.exe --C++-kinds=+c-d-e-f-g-l-m-M-n-p-s-t-T-u-v-x-X-V somefile.cpp 

Cette ligne de commande exclut tout sauf les informations de classe de la sortie de l'étiquette Si vous exécutez cette commande sur un fichier C++, le fichier texte ne contient que les informations de classe de ce fichier.

Par exemple, voici le contenu du fichier tags pour l'un des Zeus fichiers d'en-tête:

!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ 
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ 
!_TAG_PROGRAM_AUTHOR Darren Hiebert /[email protected]/ 
!_TAG_PROGRAM_NAME Exuberant Ctags // 
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ 
!_TAG_PROGRAM_VERSION 5.7 // 
ZeusRebar c:\projects\zeus3.96\zfwbar01.hpp /^class ZeusRebar : public xRebar$/;" c 
ZeusToolBar c:\projects\zeus3.96\zfwbar01.hpp /^class ZeusToolBar : public xToolBar$/;" c 
ZeusToolPanel c:\projects\zeus3.96\zfwbar01.hpp /^class ZeusToolPanel : public ZeusRebar$/;" c 
+0

J'utilise mondiale (http://www.gnu.org/software/ global /) qui est similaire à ctags. Savez-vous comment extraire une liste de classes du fichier de balises? – Andre

+0

En réponse à votre question, j'ai ajouté quelques détails à ma réponse;) – jussij

Questions connexes