OBJTYPENAME-Direktive (Delphi)
Nach oben zu Liste der Delphi-Compiler-Direktiven - Index
Typ |
Parameter |
Syntax |
{$OBJTYPENAME typeIdent ['{B|N}typeNameInObj']} |
Bereich |
Global |
Für $OBJTYPENAME gibt es zwei Einsatzbereiche. Sie können $OBJTYPENAME folgendermaßen verwenden:
- Zum Definieren des Typnamens beim Erstellen von .obj-Dateien.
- Als interne Direktive, um dem Delphi-Compiler mitzuteilen, wie der Name eines Typs verkürzt werden soll. (Da die Verkürzung mit der des C++-Compilers übereinstimmen muss, müssen Sie diese Option nur in Fällen verwenden, in denen die Typverkürzung von Delphi und C++ unterschiedlich ist.)
In der Syntax muss "typeNameInObj" entweder das Präfix "B" oder "N" wie folgt vorangestellt werden:
{$OBJTYPENAME typeIdent} // typeIdent bei Bedarf mit Namespace ausgeben
{$OBJTYPENAME typeIdent 'Bsss'} // "sss" ohne Namespace ausgeben
{$OBJTYPENAME typeIdent 'Nsss'} // "sss" bei Bedarf mit Namespace ausgeben
Die Form mit dem Präfix "B" wird zum Generieren von integrierten Typen verwendet. Zum Beispiel: Mit "Bul" wird für integrierte lange Typen ohne Vorzeichen "ul" ausgegeben.
Die Form mit dem Präfix "N" wird zum Generieren von symbolischen Typen, wie Klassen-, Struktur- und Enum-Typen, verwendet. Zum Beispiel: "NTColor" mit {$NODEFINE} in System.UITypes.pas gibt "15Graphics@TColor" aus.
Die Direktive OBJTYPENAME kann mit den Direktiven {$EXTERNALSYM} und {$NODEFINE} verwendet werden.
Diese Direktiven können nicht für Aliastypen verwendet werden:
type
TMyIntAlias = Integer; {$OBJTYPENAME TMyIntAlias 'Bl'} // error
type
TMyIntTyped = type Integer; {$OBJTYPENAME TMyIntTyped 'Bl'} // ok
TMyIntTyped2 = type TMyIntTyped; // 'Bl' is inherited from base type.