大侠们帮忙啊,第一次提问,关于《深入浅出mfc》的两个问题
小弟这些天在看侯大师的深入浅出mfc,看到第三章的时候,晕,有两个问题搞不懂,请大侠们赐教:
1.关于运行时类型识别中,输出结果中,CWinApp的PClass->m_nObjectsize是12,其他是4倒是好理解
2.关于动态创建,
IMPLEMENT_DYNAMIC(CCmdTarget, CObject)
IMPLEMENT_DYNAMIC(CWinThread, CCmdTarget)
IMPLEMENT_DYNAMIC(CWinApp, CWinThread)
IMPLEMENT_DYNAMIC(CDocument, CCmdTarget)
IMPLEMENT_DYNCREATE(CWnd, CCmdTarget)
IMPLEMENT_DYNAMIC(CView, CWnd)
IMPLEMENT_DYNCREATE(CFrameWnd, CWnd)
根据这些宏定义展开,我认为创建的“类别型录网”应该是CFrameWnd->CView->CWnd->CDocument->CWinApp->CWinThread->CCmdTarget->CObject,但是书上page115却是CView->CDocument->CFrameWnd->CWnd->CWinApp->CWinThread->CCmdTarget->CObject。不知道是为什么?而且CFrameWnd中的m_nObjectSize又是12?
3.在Frame6中的struct CRuntimeClass中除去两个静态变量,应该还有7个变量,但page115中好像认为它只有6个变量,为什么不是9个或7个变量?
谢谢各位回复的大侠们!谢谢
问题点数:100、回复次数:7Top
1 楼mclockw(penny)回复于 2005-04-03 20:48:34 得分 5
一起学习中,帮你顶一下。Top
2 楼nkwesley(江南丝竹)回复于 2005-04-06 09:06:43 得分 5
总觉得深入浅出mfc,不像传说中那么神奇Top
3 楼pangdu(只想做程序)回复于 2005-04-06 09:37:34 得分 30
先回答第一个:
class CWinApp : public CWinThread
{
DECLARE_DYNAMIC(CWinApp)
public:
CWinApp* m_pCurrentWinApp;
CWnd* m_pMainWnd;
... ...
}
加上一个vTable的指针,就是3个指针了。
3*4=12Top
4 楼Mega1212(MeGa)回复于 2005-04-06 09:49:18 得分 5
帮你UP上去……Top
5 楼surstar(我要写个操作系统出来……)回复于 2005-04-06 10:48:57 得分 10
关于动态创建 这个一两句说不清吧,候Sir都没有说明白,那我们还怎么说?
关键要很明白CRuntimeClass 以及里面的一大堆宏Top
6 楼surstar(我要写个操作系统出来……)回复于 2005-04-06 10:51:25 得分 10
第一个问题 如 pangdu(一步一停) 说言~Top
7 楼pangdu(只想做程序)回复于 2005-04-06 11:41:26 得分 35
第2个问题:不知道搂主是不是看的Frame6。
我看的是Pdf电子书,下面是书中的内容。
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)
所以是CMyView->CMyDoc->CMyFrameWnd->CView->CDocument->CFrameWnd->CWnd->CWinApp->CWinThread->CCmdTarget->CObject,另外CFrameWnd中的m_nObjectSize是4,用程序跟踪一下就知道了,我觉得书上的图是有点问题 。
第3个问题我就不太了解,我这几天也在啃这本书,看的是电子版。没发现楼主这些问题,汗。
Top




