新建一个控制台工程,按以下步骤;
定义对象Person,继承CObject,在头文件中添加宏:DECLARE_DYNCREATE(Person)
在源文件中添加宏:IMPLEMENT_DYNCREATE(Person, CObject)
main.cpp中,
使用宏:CRuntimeClass* pRuntimeClass = RUNTIME_CLASS(Person);运行时类信息
使用运行时类信息创建对象:Person* pPerson = (Person*)pRuntimeClass->CreateObject();
代码如下;
Person.h,
#pragma once#define _AFXDLL
#include <afxwin.h>
#include <afx.h>class Person : public CObject
{
protected:Person() noexcept; //无异常抛出DECLARE_DYNCREATE(Person)public:long m_id;CString m_name;int m_age;
};
Person.cpp,
#include "Person.h"IMPLEMENT_DYNCREATE(Person, CObject)
Person::Person() noexcept
{m_id = 1;m_age = 102;m_name = _T("John");
}
main.cpp;