共用方式為


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 / except 區塊中。 這可保護引擎免於延伸模組程序代碼中的某些錯誤類型;但是,由於擴充功能呼叫是在與引擎相同的線程中執行,因此仍會導致它當機。

此宏也會建立稱為 _Name (的函式,它會呼叫宏所定義的方法) 。 為了讓引擎呼叫擴充功能,必須從延伸模組連結庫 DLL 匯出此函式。

EXT_CLASS常數會指定代表 EngExtCpp 擴充連結庫的 C++ 類別名稱。

EXT_CLASS

    #ifndef EXT_CLASS
    #define EXT_CLASS Extension
    #endif

EXT_CLASS的預設值為 Extension。 您可以在包含頭檔 Engextcpp.hpp 之前定義EXT_CLASS來變更此值。

連結庫中的每個擴充命令都會 使用宏EXT_COMMAND_METHOD宣告為類別的成員EXT_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