EXT_COMMAND宏 (engextcpp.hpp)

EXT_COMMAND宏用于定义使用 EXT_COMMAND_METHOD 宏声明的扩展命令。

扩展命令的定义如下:

语法

void EXT_COMMAND(
   _Name,
   _Desc,
   _Args
);

参数

_Name

扩展命令的名称。 这必须与使用 EXT_COMMAND_METHOD声明扩展命令的 _Name 参数相同。

由于EXT_COMMAND是宏,因此 _Name 必须是扩展命令的裸名称,不应用引号或变量引起来。

_Desc

描述扩展命令的字符串。

_Args

描述扩展命令预期参数的字符串。 有关如何设置 _Args 字符串格式的信息,请参阅 分析扩展参数

注释 作为提供描述参数的字符串的替代方法,可以使用字符串“{{custom}}”来指示扩展命令将分析参数本身。 方法 GetRawArgStr 可用于提取用于分析的原始参数。
 

返回值

没有

言论

扩展命令的正文不采用任何参数。 但是,由于扩展命令声明为 EXT_CLASS 类的方法,因此它有权访问 ExtExtension 基类的所有成员,其中一些成员将初始化为执行扩展命令。

EXT_COMMAND_METHOD 应用于声明扩展命令。 与所有C++声明一样,EXT_COMMAND_METHOD声明应在EXT_COMMAND定义之前显示在源文件中。

当调试器引擎调用扩展命令方法时,它将调用包装在 try/,但 块除外。 这会保护引擎免受扩展代码中某些类型的 bug;但是,由于扩展调用在引擎所在的同一线程中执行,因此它们仍可能导致它崩溃。

此宏还会创建一个名为 _Name 的函数(该函数调用宏定义的方法)。 为了使引擎调用扩展,必须从扩展库 DLL 导出此函数。

EXT_CLASS 常量指定表示 EngExtCpp 扩展库的C++类的名称。

EXT_CLASS

    #ifndef EXT_CLASS
    #define EXT_CLASS Extension
    #endif

EXT_CLASS 的默认值为 扩展。 可以在包含头文件 Engextcpp.hpp 之前定义EXT_CLASS来更改此值。

库中的每个扩展命令都声明为使用宏 EXT_COMMAND_METHODEXT_CLASS类的成员。 例如,具有两个扩展命令的库(extcmd另一个extcmd)可以定义类EXT_CLASS,如下所示:

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

使用 EXT_COMMAND_METHOD 声明的扩展命令应通过使用 EXT_COMMAND 定义,并且应从库导出。

EXT_DECLARE_GLOBALS 宏创建EXT_CLASS类的单个实例。

EXT_DECLARE_GLOBALS 宏设置一些全局变量供 EngExtCpp 扩展框架使用。 这包括创建表示 EngExtCpp 扩展库的 EXT_CLASS 类的单个实例。

要编译到 EngExtCpp 扩展库中的源文件之一应包括以下命令

EXT_DECLARE_GLOBALS()

要求

要求 价值
目标平台 桌面
标头 engextcpp.hpp (包括 Engextcpp.hpp)

另请参阅

EXT_CLASS

EXT_COMMAND_METHOD

ExtExtension