Share via


CObject::GetRuntimeClass

オブジェクトのクラスに対応する CRuntimeClass 構造体を返します。

virtual CRuntimeClass* GetRuntimeClass( ) const;

戻り値

このオブジェクトのクラスに対応する CRuntimeClass 構造体へのポインターを返します。NULL になることはありません。

解説

CObject の各派生クラスには、それぞれ 1 つの CRuntimeClass 構造体が用意されています。 この構造体のメンバーを次に示します。

  • LPCSTR m_lpszClassName   ASCII 文字でのクラス名を持つ NULL で終わる文字列です。

  • int m_nObjectSize   オブジェクトのバイト単位のサイズです。 別に割り当てられたメモリへのポインターをオブジェクトがデータ メンバーとして持っている場合でも、そのメモリのサイズは含まれません。

  • UINT m_wSchema   スキーマ番号です。-1 のときは、シリアル化できないクラスです。 スキーマ番号の説明については、「IMPLEMENT_SERIAL」マクロを参照してください。

  • CObject* ( PASCAL* m_pfnCreateObject )( )   派生クラスのオブジェクトを構築する既定のコンストラクターへの関数ポインターです。クラスが動的に構築された場合のみ有効です。それ以外の場合は、NULL を返します。

  • CRuntimeClass* ( PASCAL* m_pfn_GetBaseClass )( )   アプリケーションが AFXDLL バージョンの MFC に動的にリンクされている場合、基本クラスの CRuntimeClass 構造体を返す関数へのポインターです。

  • CRuntimeClass* m_pBaseClass   MFC に静的にリンクする場合、基本クラスの CRuntimeClass 構造体へのポインターです。

この関数は、クラスを実装する場合に IMPLEMENT_DYNAMICIMPLEMENT_DYNCREATE、または IMPLEMENT_SERIAL のいずれかのマクロを使用することが必要です。 使用しない場合は、正しい結果が得られません。

使用例

すべての CObject の例で使われている CAge クラスのリストについては、「CObList::CObList」を参照してください。

CAge a(21);
CRuntimeClass* prt = a.GetRuntimeClass();
ASSERT(strcmp(prt->m_lpszClassName, "CAge")  == 0);   

必要条件

**ヘッダー:**afx.h

参照

参照

CObject クラス

階層図

CObject::IsKindOf

RUNTIME_CLASS

その他の技術情報

CObject のメンバー