梓囚徒貧圭�鮗� ○ 賜 ★ 辛酔堀貧和鍬匈��梓囚徒貧議 Enter 囚辛指欺云慕朕村匈��梓囚徒貧圭�鮗� ● 辛指欺云匈競何��
!!!!隆堋響頼��紗秘慕禰厮宴和肝写偬堋響��
袈箭殻會Frame6 壓。h 亀嶄嗤宸乂窃艶蕗苧�此�
class CObject
��
。。。
���察�
class CCmdTarget �此�public CObject
��
DECLARE_DYNAMIC��CCmdTarget��
。。。
���察�
class CWinThread �此�public CCmdTarget
��
DECLARE_DYNAMIC��CWinThread��
。。。
���察�
class CWinApp �此�public CWinThread
��
DECLARE_DYNAMIC��CWinApp��
。。。
���察�
class CDocument �此�public CCmdTarget
��
DECLARE_DYNAMIC��CDocument��
。。。
���察�
class CWnd �此�public CCmdTarget
��
DECLARE_DYNCREATE��CWnd��
。。。
���察�
class CFrameWnd �此�public CWnd
��
DECLARE_DYNCREATE��CFrameWnd��
。。。
���察�
class CView �此�public CWnd
��
DECLARE_DYNAMIC��CView��
。。。
���察�
class CMyWinApp �此�public CWinApp
��
。。。
���察�
class CMyFrameWnd �此�public CFrameWnd
146
´´´´´´´´´´´´´´´´´´´´´´Page 209´´´´´´´´´´´´´´´´´´´´´´´
及3嫗 MFC 鎗寄�P�I室�g岻庁�M
��
DECLARE_DYNCREATE��CMyFrameWnd��
。。。
���察�
class CMyDoc �此�public CDocument
��
DECLARE_DYNCREATE��CMyDoc��
。。。
���察�
class CMyView �此�public CView
��
DECLARE_DYNCREATE��CMyView��
。。。
���察�
壓。cpp 亀嶄嗽嗤宸乂強恬�此�
IMPLEMENT_DYNAMIC��CCmdTarget�察�CObject��
IMPLEMENT_DYNAMIC��CWinThread�察�CCmdTarget��
IMPLEMENT_DYNAMIC��CWinApp�察�CWinThread��
IMPLEMENT_DYNCREATE��CWnd�察�CCmdTarget��
IMPLEMENT_DYNCREATE��CFrameWnd�察�CWnd��
IMPLEMENT_DYNAMIC��CDocument�察�CCmdTarget��
IMPLEMENT_DYNAMIC��CView�察�CWnd��
IMPLEMENT_DYNCREATE��CMyFrameWnd�察�CFrameWnd��
IMPLEMENT_DYNCREATE��CMyDoc�察�CDocument��
IMPLEMENT_DYNCREATE��CMyView�察�CView��
噐頁怏岶竃夕3´2 宸劔匯倖寄利。
147
´´´´´´´´´´´´´´´´´´´´´´Page 210´´´´´´´´´´´´´´´´´´´´´´´
及鐙 齢壓検桧�B互岬
CObject�今�classCObject CCmdTarget�今�classCCmdTarget CWinThread�今�classCWinThread
^CObject ̄ ^CCmdTarget ̄ ^CWinThread ̄
4 4 4
m_pfnCreateObject NULL m_pfnCreateObject NULL m_pfnCreateObject NULL
m_pNextClass m_pNextClass m_pNextClass
NULL
CFrameWnd�今�classCFrameWnd CWnd�今�classCWnd CWinApp�今�classCWinApp
^CFrameWnd ̄ ^CWnd ̄ ^CWinApp ̄
12 4 4
m_pfnCreateObject m_pfnCreateObject m_pfnCreateObject NULL
m_pNextClass m_pNextClass m_pNextClass
CDocument�今�classCDocument CView�今�classCView
^CDocument ̄ ^CView ̄ ��static 延楚��
4 4 CRuntimeClass�今�pFirstClass
m_pfnCreateObject NULL m_pfnCreateObject NULL
m_pNextClass m_pNextClass
夕3´2 參CRuntimeClass 斤�鷙抗謬帖 言牘靜預射�々。云夕峪双竃嚥強蓑
伏撹 ��Dynamic Creation��嗤購狼議撹埀。群頁m_pfnCreateObject
音葎NULL 宀�� 軸辛強蓑伏撹。
�嶬擅�厘断蝕兵径寔強蓑伏撹。遍枠壓main 痕方嶄紗貧宸匯粁鷹�此�
void main�┌�
��
。。。
//Test Dynamic Creation
CRuntimeClass* pClassRef�察�
CObject* pOb�察�
while��1��
��
148
´´´´´´´´´´´´´´´´´´´´´´Page 211´´´´´´´´´´´´´´´´´´´´´´´
及3嫗 MFC 鎗寄�P�I室�g岻庁�M
if �┌�pClassRef = CRuntimeClass�今�Load�┌��� == NULL��
break�察�
pOb = pClassRef´〃CreateObject�┌��察�
if ��pOb ��= NULL��
pOb´〃SayHello�┌��察�
��
��
旺譜柴
CRuntimeClass CreateObj ect CRuntimeClass Load
�今此 〆諭 。今此 “脾此�
// in implementation file
CObject* CRuntimeClass�今�CreateObject�┌�
��
if ��m_pfnCreateObject == NULL��
��
TRACE1�─�Error�此�Trying to create object which is not ;
;DECLARE_DYNCREATE nor DECLARE_SERIAL�此。�hs。n;�察�
m_lpszClassName���察�
return NULL�察�
��
CObject* pObject = NULL�察�
pObject = ��*m_pfnCreateObject���┌��察�
return pObject�察�
��
CRuntimeClass* PASCAL CRu