今天重温孙薪的VC++视频第三课:MFC程序框架的剖析。
在理解theApp全局变量的时候,我给CTestApp,以及它的基类CWinApp的构造函数加了断点,按照视频上的理解,程序应该是按照
CTestApp theApp;
CTestApp::CTestApp();
CWinApp::CWinApp();
WinMain();
这样的顺序执行,这是因为在构造CTestApp类的时候,要首先调用基类CWinApp的构造函数。当后者执行完后,再返回到前者的构造函数当中去。但是,视频中并没有给CWinApp的构造函数加断点。
当我把CWinApp类的构造函数也加上断点以后,发现了一个奇怪的问题,程序的执行顺序发生了变化:
CWinApp::CWinApp();
CTestApp theApp;
CTestApp::CTestApp();
CWinApp::CWinApp();
WinMain();
也就是说,在构造theApp全局变量之前,已经调用了一次CWinApp的构造函数,怎么回事呢?不是就一个全局变量么?
于是打开Call Stack,一步一步查看,终于发现了这个秘密:
在DLLOLE.CPP的第192行有这么一句:CWinApp _afxOleWinApp;
看到了吧,又是一个全局变量:-),但是不晓得这个东东是用来干什么的。
code,
CWinApp,
global variable,
mfc,
vc,
vc++,
全局变量
分享到:
相关推荐
孙鑫 VC++ 深入详解书中源码
孙鑫VC++视频讲座配套幻灯+全套示例源代码
MFC-lesson3-AppWizard的原理与MFC程序框架的剖析.rar 包含课程内容、视频、PPT、笔记。内容详尽,MFC珍藏。
java技术从入门到精通(孙鑫)学习笔记-Lesson2
java技术从入门到精通(孙鑫)学习笔记-Lesson2(面向对象上)
第九课:如何修改MFC AppWizard向导生成的框架程序的外观和大小 第十课:图形的绘制,如何使用自定义画笔(颜色,线宽,线形 第十一课:图形的 保存和重绘 第十二课:文件操作 第十三课:文档与串行化 第十四课:网络相关...
孙鑫老师的视频配套源代码,比较实用,希望对大家有用处。
孙鑫老师VC++6.0视频教程对应源代码 第一课源代码
经典资料:孙鑫vc++视频讲义配套的源代码20集全第1-10。
孙鑫视频教程 vc视频教程 之 MFC AppWizard的原理与MFC程序框架的剖析.zip
该PPT简单易懂,结合孙鑫老师的视频,很值得看。
该资源由内附孙鑫讲解的vc++编程1-20课的PPT讲解和详细实现代码,另附c++入门基础的课程,是每位c++编程爱好者必学的课程资源c++编程进阶的必经之路。
VC++深入详解教学视频(MFC)--荐 - - 2013-05-11 Visual C++灵感编程教学光盘 - - 2013-05-01 东南大学C++程序设计 - - 2013-05-04 从新手到高手C++全方位学习 - - 2013-04-04 吉林大学《C语言程序设计》 ...
孙鑫pdf文档,入门C++的好帮手,MFC类库,vc6.0,虽然版本比较老,但是在很多地方使用得仍然比较多。参考性大
语言程序设计资料:Java-笔记-孙鑫版.doc
《VC++深入详解》主要从程序内部运行的机制和MFC程序的组织脉络入手,使读者在学习VC++编程知识时,既能够知其然,又能知其所以然,从而帮助读者从根本上理解和掌握Windows的程序设计。另外,《VC++深入详解》还贯穿...
孙鑫 VC++深入详解学习笔记
利用vs2015,对孙鑫mfc进行了代码编写 时间,能力原理,有些部分没有进行优化
详细讲解MFC六大关键技术的原理: (1)MFC程序的初始化过程; (2)运行时类型识别(RTTI); (3)动态创建; (4)永久保存(串行化); (5)消息映射; (6)命令传递。
介绍了Windows程序运行的内部机制,剖析了MFC框架的运行机制