Anzeigen: Delphi C++
Anzeigeeinstellungen

XML-Dokumentation für C++-Code

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Befehlszeilenhilfsprogramme - Index


Inhaltsverzeichnis

Einführung

Der C++-Compiler kann eine XML-Datei mit den Deklarationen aus einer C++-Quelltextdatei und den einbezogenen Headern erzeugen. Die generierten Informationen ähneln den im C++Builder-Klassen-Explorer angezeigten Informationen insofern, als dass beide Informationen aus der Symboltabelle des Compilers anzeigen. Dieses Thema beschreibt, die Option -Zx, mit der BCC32 XML-Dokumentation erzeugt.

Das Format (Schema) der XML-Datei wird unter Globale XML-Deklarationen für die Compiler XML-Ausgabe beschrieben.

BCC32-Befehlsoptionen für die XML-Ausgabe

-Zx - XML-Ausgabe erzeugen

Die Option -Zx von BCC32 veranlasst den Compiler, eine XML-Datei mit den Symbolen zu erzeugen, die während der Verarbeitung einer C++-Quelltextdatei und deren Headern gefunden wurden. Der Befehl BCC32 -Zx test.cpp erzeugt beispielsweise für die folgende Quelltextdatei (test.cpp) die unten gezeigte XML-Datei test.xml:

Befehlssyntax

bcc32 -Zx test.cpp 

test.cpp

class TBase { 
  int id; 
}; 

class TDerived : public TBase { 
  char *name; 
};

test.xml


<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
    <class name="TBase" visibility="public">
        <members>
            <field name="id" type="int" visibility="private" />
        </members>
    </class>
    <class name="TDerived" visibility="public">
        <ancestor name="TBase">
            <fieldref name="id" visibility="private" />
        </ancestor>
        <members>
            <field name="name" type="char *" visibility="private" />
        </members>
    </class>
</file>

Die Option -Zx akzeptiert auch Unteroptionen. Diese werden angezeigt, wenn Sie den folgenden Hilfebefehl (-h) ausführen:

Befehlssyntax

bcc32 -h -Zx 

Folgendes wird ausgegeben:

-Zx     Global Definitionen in XML-Datei ausgeben. 
     Unteroptionen: 
          -Zx=<Dateiname> Nur Typen/Deklarationen in <Dateiname> ausgeben 
          -Zxf[=Dateiname] Member des Basistyps weglassen 
          -Zxm[=Dateiname] Makros ausgeben -Zxp[=Dateiname] Datei- & Zeilenposition ausgeben

-Zxf - Vorfahrinformationen weglassen

Bei der Verarbeitung einer Klasse für die XML-Ausgabe erzeugt BCC32 standardmäßig Informationen über Member der Basistypen (Vorfahren) dieser Klasse. Die Unteroption 'f' weist den Compiler an, keine Informationen für Basistypen zu erzeugen. Die folgende Tabelle zeigt, wie die Unteroption 'f' die generierte .xml-Datei für die Datei test.cpp ändert.

Befehlssyntax

bcc32 -Zxf Test.cpp

test.xml (ohne die Unteroption 'f')


<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
    <class name="TBase" visibility="public">
        <members>
            <field name="id" type="int" visibility="private" />
        </members>
    </class>
    <class name="TDerived" visibility="public">
        <ancestor name="TBase">
            <fieldref name="id" visibility="private" />
        </ancestor>
        <members>
            <field name="name" type="char *" visibility="private" />
        </members>
    </class>
</file>

test.xml (mit der Unteroption 'f')


<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
    <class name="TBase" visibility="public">
        <members>
            <field name="id" type="int" visibility="private" />
        </members>
    </class>
    <class name="TDerived" visibility="public">
        <members>
            <field name="name" type="char *" visibility="private" />
        </members>
    </class>
</file>

-Zxp - Positionsinformationen erzeugen

Die Unteroption 'p' weist BCC32 an, Attribute einzubeziehen, die die Datei und die Zeile jeder Deklaration beschreiben. Die folgende Tabelle zeigt die Datei test.xml mit der aktivierten Unteroption 'p'.

Befehlssyntax

bcc32 -Zxp Test.cpp

test.xml (mit der Unteroption 'p')


<?xml version="1.0" encoding="utf-8"?>
<file name="test.cpp">
    <class name="TBase" visibility="public" file="test.cpp" line="1">
        <members>
            <field name="id" type="int" visibility="private" file="test.cpp" line="2" />
        </members>
    </class>
    <class name="TDerived" visibility="public" file="test.cpp" line="5">
        <ancestor name="TBase">
            <fieldref name="id" visibility="private" />
        </ancestor>
        <members>
            <field name="name" type="char *" visibility="private" file="test.cpp" line="6" />
        </members>
    </class>
</file>

Siehe auch

In anderen Sprachen