System.Rtti.Invoke

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function Invoke(CodeAddress: Pointer; const Args: TArray<TValue>;
CallingConvention: TCallConv; AResultType: PTypeInfo; IsStatic: Boolean; IsConstructor: Boolean): TValue;

C++

extern DELPHI_PACKAGE TValue __fastcall Invoke(void * CodeAddress, const System::DynamicArray<TValue> Args, System::Typinfo::TCallConv CallingConvention, System::Typinfo::PTypeInfo AResultType, bool IsStatic = false, bool IsConstructor = false);

プロパティ

種類 可視性 ソース ユニット
function public
System.Rtti.pas
System.Rtti.hpp
System.Rtti System.Rtti

説明

メソッドを動的に呼び出します。

Invoke を使用すると、メソッドを実行時に呼び出せます。Invoke は、コンパイル時には実際のメソッドが既知ではないが、実行時に検索される場合に役立ちます。

次の表に Invoke ルーチンのパラメータを示します。



パラメータ 説明

CodeAddress

呼び出し対象メソッドのアドレス。

Args

TValue レコードの配列。各レコードにはメソッドに渡されるパラメータを格納します。

CallingConvention

メソッドを呼び出すのに使用される呼び出し規約。

AResultType

メソッドの結果型の型情報。



Invoke は、呼び出されたメソッドの結果を保持する TValue レコードを返します。

呼び出されるメソッドの種類に応じて、Args 配列は次のルール セットに従う必要があります。

  • インスタンス メソッドの場合、Args 配列の最初の要素は、そのインスタンスへのポインタでなければなりません。
  • インターフェイス メソッドの場合、Args 配列の最初の要素は、インターフェイス参照でなければなりません。
  • クラス メソッドの場合、Args 配列の最初の要素は、クラス参照でなければなりません。
  • 静的メソッドおよびグローバル ルーチンは、特別な処理を必要としません。

関連項目