OBJTYPENAME-Direktive (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

Siehe auch