Directive OBJTYPENAME (Delphi)
Remonter à Liste des directives de compilation Delphi - Index
Type |
Paramètre |
Syntaxe |
{$OBJTYPENAME typeIdent ['{B|N}typeNameInObj']} |
Portée |
Globale |
$OBJTYPENAME a une double fonction. Vous pouvez utiliser $OBJTYPENAME comme suit :
- Pour définir le nom du type lors de la création des fichiers .obj.
- En tant que directive interne, pour indiquer au compilateur Delphi comment substantyper le nom d'un type. Puisque le substantypage doit correspondre à celui du compilateur C++, cette option doit seulement être utilisée dans le cas où Delphi et C++ ne sont pas d'accord sur la façon de substantyper un type.
Dans la syntaxe, 'typeNameInObj' doit être préfixé avec 'B' ou 'N', comme suit :
{$OBJTYPENAME typeIdent} // Emettre typeIdent avec espace de nommage, si nécessaire
{$OBJTYPENAME typeIdent 'Bsss'} // Emettre 'sss' sans espace de nommage
{$OBJTYPENAME typeIdent 'Nsss'} // Emettre 'sss' avec espace de nommage, si nécessaire
La forme préfixée par B est utilisée pour générer des types intégrés. Par exemple : 'Bul' émet 'ul' pour le type long non signé intégré.
La forme préfixée par N est utilisée pour générer des types symboliques, tels que les types classe, structure et énumération. Par exemple : 'NTColor' avec {$NODEFINE} dans System.UITypes.pas émettra '15Graphics@TColor'.
La directive OBJTYPENAME peut être utilisée avec les directives {$EXTERNALSYM} et {$NODEFINE}.
Vous ne pouvez pas utiliser ces directives pour les types alias :
type
TMyIntAlias = Integer; {$OBJTYPENAME TMyIntAlias 'Bl'} // error
type
TMyIntTyped = type Integer; {$OBJTYPENAME TMyIntTyped 'Bl'} // ok
TMyIntTyped2 = type TMyIntTyped; // 'Bl' is inherited from base type.