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