共用方式為


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

這個巨集也會建立名為 _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