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 字符串格式的信息,请参阅 分析扩展参数。
返回值
没有
言论
扩展命令的正文不采用任何参数。 但是,由于扩展命令声明为 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) |