CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

大侠们帮忙啊,第一次提问,关于《深入浅出mfc》的两个问题

楼主jpmilan(jpmilan)2005-04-03 20:02:22 在 VC/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

相关问题

  • 看过《深入浅出MFC》的高手请进,菜鸟提问!
  • 深入浅出MFC
  • 深入浅出mfc?
  • 深入浅出MFC,好书!
  • 关于《深入浅出MFC》
  • 初学《深入浅出MFC》
  • mfc深入浅出问题
  • 深入浅出MFC---------------HELP ME!
  • 急需《深入浅出MFC》!!!!!
  • <<深入浅出MFC>>??失望…………………………

关键词

  • ccmdtarget
  • cframewnd
  • cwinthread
  • cwinapp
  • dyncreate
  • implement
  • cwnd
  • cdocument
  • dynamic
  • nobjectsize

得分解答快速导航

  • 帖主:jpmilan
  • mclockw
  • nkwesley
  • pangdu
  • Mega1212
  • surstar
  • surstar
  • pangdu

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo