Partager via


macro EXT_COMMAND (engextcpp.hpp)

La macro EXT_COMMAND est utilisée pour définir une commande d’extension déclarée à l’aide de la macro EXT_COMMAND_METHOD.

Une commande d’extension est définie comme suit :

Syntaxe

void EXT_COMMAND(
   _Name,
   _Desc,
   _Args
);

Paramètres

_Name

Nom de la commande d’extension. Il doit s’agir du paramètre _Name utilisé pour déclarer la commande d’extension à l’aide de EXT_COMMAND_METHOD.

Étant donné que EXT_COMMAND est une macro, _Name doit être le nom complet de la commande d’extension et ne doit pas être placé entre guillemets ou être une variable.

_Desc

Chaîne décrivant la commande d’extension.

_Args

Chaîne décrivant les arguments attendus par la commande d’extension. Pour plus d’informations sur la mise en forme de la chaîne _Args, consultez analyse des arguments d’extension.

Remarque En guise d’alternative à la fourniture d’une chaîne qui décrit les arguments, vous pouvez utiliser la chaîne « {{custom}} » pour indiquer que la commande d’extension analyse les arguments lui-même. La méthode GetRawArgStr peut être utilisée pour extraire l’argument brut pour l’analyse.
 

Valeur de retour

Aucun

Remarques

Le corps de la commande d’extension ne prend aucun argument. Toutefois, étant donné que la commande d’extension est déclarée en tant que méthode de la classe EXT_CLASS, elle a accès à tous les membres de la classe de base extExtension, dont certaines sont initialisées pour l’exécution de la commande d’extension.

La macro EXT_COMMAND_METHOD doit être utilisée pour déclarer la commande d’extension. Comme pour toutes les déclarations C++, la déclaration EXT_COMMAND_METHOD doit apparaître dans les fichiers sources avant la définition EXT_COMMAND.

Lorsque le moteur de débogueur appelle une méthode de commande d’extension, il encapsule l’appel dans un essayer / sauf bloc. Cela protège le moteur contre certains types de bogues dans le code d’extension ; mais, étant donné que les appels d’extension sont exécutés dans le même thread que le moteur, ils peuvent toujours provoquer un blocage.

Cette macro crée également une fonction appelée _Name (qui appelle la méthode définie par la macro). Pour que le moteur appelle l’extension, cette fonction doit être exportée à partir de la DLL de la bibliothèque d’extensions.

La constante EXT_CLASS spécifie le nom de la classe C++ qui représente la bibliothèque d’extensions EngExtCpp.

EXT_CLASS

    #ifndef EXT_CLASS
    #define EXT_CLASS Extension
    #endif

La valeur par défaut de EXT_CLASS est extension. Vous pouvez modifier cette valeur en définissant EXT_CLASS avant d’inclure le fichier d’en-tête Engextcpp.hpp.

Chaque commande d’extension de la bibliothèque est déclarée en tant que membre de la classe EXT_CLASS à l’aide de la macro EXT_COMMAND_METHOD. Par exemple, une bibliothèque avec deux commandes d’extension, extcmd et un autreextcmd, peut définir la classe EXT_CLASS comme suit :

class EXT_CLASS : public ExtExtension
{
public:
    EXT_COMMAND_METHOD(extcmd);
    EXT_COMMAND_METHOD(anotherextcmd);
}

Les commandes d’extension déclarées à l’aide de EXT_COMMAND_METHOD doivent être définies à l’aide de EXT_COMMAND et doivent être exportées à partir de la bibliothèque.

La macro EXT_DECLARE_GLOBALS crée une instance unique de la classe EXT_CLASS.

La macro EXT_DECLARE_GLOBALS configure certaines variables globales à utiliser par l’infrastructure d’extension EngExtCpp. Cela inclut la création d’une instance unique de la classe EXT_CLASS qui représente la bibliothèque d’extensions EngExtCpp.

L’un des fichiers sources à compiler dans la bibliothèque d’extensions EngExtCpp doit inclure la commande suivante

EXT_DECLARE_GLOBALS()

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête engextcpp.hpp (include Engextcpp.hpp)

Voir aussi

EXT_CLASS

EXT_COMMAND_METHOD

ExtExtension