最近又在用MFC就研究了把MFC对象动态创建(Dynamic Object Creation)整理总结下经验
如果用 文本常量 动态创建使用DECLARE_DYNCREATE、IMPLEMENT_DYNCREATE还有RUNTIME_CLASS这 3个宏如果要用 串变量 动态创建就必须使用DECLARE_SERIAL、IMPLEMENT_SERIAL这两个宏还有CRuntimeClass::FromName这个静态
举例代码如下:
# _AFXDLL
# <afx.h>
# <afxwin.h>
A : public CObject
{
DECLARE_SERIAL(A)
public:
A { a = 0; }
A( a) { this->a = a; }
void SayHello { AfxMessageBox(_T("Hello!")); }
private:
a;
};
IMPLEMENT_SERIAL(A, CObject, 100)
{
wchar_t szClassName = _T("A");
CRuntimeClass* pRuntimeClass = CRuntimeClass::FromName(szClassName);
//CRuntimeClass* pRuntimeClass = RUNTIME_CLASS(A);
A* pa = (A*)pRuntimeClass->CreateObject;
pa->SayHello;
0;
}
最新评论