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.
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) |