次の方法で共有


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 メソッドを使用して、解析用の raw 引数をフェッチできます。
 

戻り値

何一つ

備考

拡張コマンドの本体は引数を受け取りません。 ただし、拡張コマンドは 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 の既定値は、拡張機能 です。 この値を変更するには、ヘッダー ファイル Engextcpp.hpp を含める前にEXT_CLASSを定義します。

ライブラリ内の各拡張コマンドは、マクロ EXT_COMMAND_METHODを使用EXT_CLASSクラスのメンバーとして宣言されます。 たとえば、extcmd と別のextcmd 2 つの拡張コマンドを含むライブラリでは、次のようにクラス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 クラスの 1 つのインスタンスを作成します。

EXT_DECLARE_GLOBALS マクロは、EngExtCpp 拡張フレームワークで使用するためにいくつかのグローバル変数を設定します。 これには、EngExtCpp 拡張ライブラリを表す EXT_CLASS クラスの 1 つのインスタンスの作成が含まれます。

EngExtCpp 拡張ライブラリにコンパイルするソース ファイルの 1 つに、次のコマンドを含める必要があります。

EXT_DECLARE_GLOBALS()

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー engextcpp.hpp (Engextcpp.hpp を含む)

関連項目

EXT_CLASS

EXT_COMMAND_METHOD

ExtExtension する