2009-07-16 6 views
3

Ich verwende Visual Studio 2008 (C++) und möchte eine Liste aller Klassen erstellen, die in diesem Projekt definiert sind. Kennt jemand Werkzeuge, die diese leicht extrahieren?Erstellen einer Liste aller Klassen in einem C++ - Projekt

Ein einfaches 'Finden in Dateien' wird natürlich nicht ausreichen.

Bearbeiten: Die Liste der Klassen sollte automatisch erstellt werden und das Ergebnis sollte eine einfache Datei mit Klassennamen sein (eine Klasse pro Zeile).

Antwort

12

Doxygen wird das tun und lädt mehr. Es ist ein wirklich gutes Werkzeug für die Herstellung aller Arten von Dokumentation

3

Sie können alle Klassen sehen usw. in Ihrem Projekt im Fenster Klassenansicht (View > Class View). Sie können sogar eigene Ordner erstellen und die Klassen organisieren, um Ihre eigene Struktur zu erstellen. Z.B. Sie könnten Ordner mit dem Namen Refactor, Unused, Suspect usw. erstellen.

Sie können die Klassenansicht nicht drucken, aber der Browser ist möglicherweise immer noch hilfreich für Sie.

2

Sie könnten ein Tool wie ctags verwenden, um eine Tag-Datei mit dieser Klasseninformation zu erstellen.

EDIT: Ich habe gerade überprüft diese ctags.exe Kommandozeilen innerhalb des Zeus Editor, und es scheint zu tun, was Sie benötigen:

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

Diese Befehlszeilen alle, aber die Informationen Klasse schließen aus dem Tag-Ausgang Wenn Sie diesen Befehl für eine C++ - Datei ausführen, erhalten Sie eine Textdatei mit den Tags, die nur die Klasseninformationen aus dieser Datei enthält.

Zum Beispiel, hier ist Inhalt der Tags Datei für eine der Zeus Header-Dateien:

!_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

ich global bin mit (http://www.gnu.org/software/ global /) ähnlich wie ctags. Wissen Sie, wie Sie eine Liste von Klassen aus der Tag-Datei extrahieren? – Andre

+0

Als Antwort auf Ihre Frage habe ich meiner Antwort einige Details hinzugefügt;) – jussij

Verwandte Themen