为什么有时候程序在到达全局theApp时会先进入CWinApp呢???
2007-10-03 09:40
393 查看
工程名:Test
按照一般的理解,加点调试时程序首先应该进入全局对象CTestApp theApp。但有时候我们却发现
程序首先进入的是CWinApp(。。。),这就让我们很难理解?????
进一步调试发现此时 this指向一个叫 _afxOleWinApp的对象。看名子应该是一个全局对象。搜一下
进入到了DLLOLE.CPP里,发现它里面的却有一个 _afxOleWinApp对象 CWinApp _afxOleWinApp
再加一个断点再调试,发现程序首先进入到了这里,然后到CWinApp(。。。),最后又会回到
DLLOLE.CPP里完成其它初始化如 DLLMain(。。。)。所以这段过程实际上是在初始化动态链接库。
为什么要初始化动态链接库,初始化什么DLL。
其实初不初始化DLL,取决于你是怎样引用MFC类库的。如果你出现了上述情况,你可以Project---->
Settings--->General你会发现你加载类库的方式是Shared Dll。如果是以Static Libray方式加载的话
就不会出现上述情况了,因为此时根本不需要加载DLL。
按照一般的理解,加点调试时程序首先应该进入全局对象CTestApp theApp。但有时候我们却发现
程序首先进入的是CWinApp(。。。),这就让我们很难理解?????
进一步调试发现此时 this指向一个叫 _afxOleWinApp的对象。看名子应该是一个全局对象。搜一下
进入到了DLLOLE.CPP里,发现它里面的却有一个 _afxOleWinApp对象 CWinApp _afxOleWinApp
再加一个断点再调试,发现程序首先进入到了这里,然后到CWinApp(。。。),最后又会回到
DLLOLE.CPP里完成其它初始化如 DLLMain(。。。)。所以这段过程实际上是在初始化动态链接库。
为什么要初始化动态链接库,初始化什么DLL。
其实初不初始化DLL,取决于你是怎样引用MFC类库的。如果你出现了上述情况,你可以Project---->
Settings--->General你会发现你加载类库的方式是Shared Dll。如果是以Static Libray方式加载的话
就不会出现上述情况了,因为此时根本不需要加载DLL。
相关文章推荐
- 为什么有时候程序在到达全局theApp时会先进入CWinApp呢?
- MFC程序的启动过程——先全局对象theApp(第一入口),后WinMain(真正入口),会引爆pApp->InitInstance从而创建窗口(程序员入口)
- 【mfc】利用文件的读写,theApp全局变量来现实登录帐号管理系统
- iOS——退出App程序;进入设置页面
- app进入后台,并杀死程序,想删除掉NSUserDefault的数据该怎么办
- citrix4.5无法进入发布程序界面The supplied credentials could not be validated
- 主题 : 隐藏系统状态栏 让app启动时图片全屏 进入程序后显示状态栏方法。
- MFC类的组织(类之间的关系)与WinMain函数、theAPP、构造函数、以及全局变量(对象)之间的关系
- 隐藏系统状态栏 让app启动时图片全屏 进入程序后显示状态栏方法。
- Android app 运行时按了Home键,进入到另一程序,再调用原来程序
- .Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
- ios-通知:闹钟之关于设置闹钟后,点击app图标进入程序不播放音乐的问题(已解决)
- 为什么有时候程序出问题会打印出“烫烫烫烫...
- My app status is Ready for Sale but I cannot see my app on the App Store. Why? 为什么审核通过后 appstore中搜不到我的app
- java中有自动回收机制,为什么有时候还写程序回收?
- 全局对象在程序进入main之前construct, 离开main后destruct
- java中的全局变量与静态变量的区别与联系?有时候为什么专门定义静态变量。(标题党~~)
- 为什么有时候 进入这么多次,一次是 38次,一次是 114次,
- 安装APP成功后点击打开,按home键回到桌面,再打开图标进入程序重新启动