RTTI コンテキストの取得
RTTI の操作 への移動
RTTI 情報はコンパイル済みバイナリに格納されます。つまり、実際の初期化は不要です。それでも、このような未加工の情報の取り扱いはかなり面倒な場合があるため、Delphi RTL には System.Rtti ユニットが用意されています。System.Rtti を利用すれば、どのようなアプリケーションにおいてもたやすく使用できる純粋なオブジェクト指向 API を作成できます。開発者がさらに快適に作業できるように、Rtti ユニットには TRttiContext という特別なレコードが用意されており、それを通じて、RTTI 作業セッション中に作成されるすべてのオブジェクトの存続期間が管理されます。
TRttiContext は RTTI API の基礎を成すと考えることができます。型情報に関するクエリはすべて、このレコードを通じて実行されます。TRttiContext はまた、自分自身を通じて作成された全オブジェクトの存続期間の管理にも関与します。
TRttiContext を取得するには、以下のように、静的メソッド TRttiContext.Create を使用する必要があります。
var
LContext: TRttiContext;
begin
{ Obtain the RTTI context }
LContext := TRttiContext.Create();
// ...
LContext.Free;
end.
#include <Rtti.hpp>
// ...
int _tmain(int argc, _TCHAR* argv[]) {
// Obtain the RTTI context
TRttiContext context;
// ...
return 0;
}
TRttiContext インスタンスの通常の機能には、TRttiContext.Create と TRttiContext.Free の呼び出しは必須ではない点に注意してください。それでも、Create を呼び出して RTTI コンテキストを初期化し、Free を呼び出してコンテキストを直ちに解放することをお勧めします。