CLOSE SEARCH

CRuntimeClass

CRuntimeClass는 이름과는 다르게 클래스가 아닌 구조체이며, 따라서 부모 클래스도 가지지 않는다.

이 구조체에는 실행시에 특정 클래스나 혹은 그 클래스의 상위 클래스에 대한 정보를 얻을 수 있는 기능을 제공하는데 핵심이 된다.


CRuntimeClass는 afx.h 파일에 아래와 같이 선언되어 있다.


struct CRuntimeClass
{

LPCSTR m_lpszClassName;

int m_nObjectSize;

UINT m_wSchema;


CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class

#ifdef _AFXDLL
CRuntimeClass* (PASCAL* m_pfnGetBaseClass)();
#else
CRuntimeClass* m_pBaseClass;
#endif


CObject* CreateObject();
BOOL IsDerivedFrom(const CRuntimeClass* pBaseClass) const;


static CRuntimeClass* PASCAL FromName(LPCSTR lpszClassName);
static CRuntimeClass* PASCAL FromName(LPCWSTR lpszClassName);
static CObject* PASCAL CreateObject(LPCSTR lpszClassName);
static CObject* PASCAL CreateObject(LPCWSTR lpszClassName);


void Store(CArchive& ar) const;
static CRuntimeClass* PASCAL Load(CArchive& ar, UINT* pwSchemaNum);


CRuntimeClass* m_pNextClass;

const AFX_CLASSINIT* m_pClassInit;
};



크리에이티브 커먼즈 라이선스
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다.

Filed under: Windows & Windows Phone