macro EXT_COMMAND (engextcpp.hpp)
La macro EXT_COMMAND est utilisée pour définir une commande d’extension qui a été 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 être identique au 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 nu 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
None
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 certains sont initialisés 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 du débogueur appelle une méthode de commande d’extension, il encapsule l’appel dans un bloc try / except . Cela protège le moteur contre certains types de bogues dans le code de l’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 dans 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 anotherextcmd, 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 qui ont été 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 seule instance 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’un instance unique de la classe EXT_CLASS qui représente la bibliothèque d’extension EngExtCpp.
L’un des fichiers sources à compiler dans la bibliothèque d’extensions EngExtCpp doit inclure la commande suivante
EXT_DECLARE_GLOBALS()
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | engextcpp.hpp (inclure Engextcpp.hpp) |