MFC中的WinMain()入口去哪里了?
来源:互联网 发布:普通网络作家基本收入 编辑:程序博客网 时间:2024/04/29 07:32
学过一段时间的MFC之后,很多人大概都有一个疑问:在MFC中,WinMain()哪去了?因为任何一个使用过Win32 SDK编程的人都知道,WinMain()函数是Win32程序开始的入口点,可是在MFC的框架使用中,一般我们只知道从CWinApp类继承得到一个新类,然后重写InitInstance()虚函数,程序框架就可以运行了。哪么,在MFC中,WinMain()倒底去哪了?
似乎微软就是不想让人清楚、明白的了解MFC框架将WinMain()封装的过程。微软在MFC中是这样隐藏调用WinMain()的:
1.在TCHAR.H文件中定义了一个宏:
#define _tWinMain WinMain
这样MFC源代码在编译的时候,_tWinMain就会被替换为WinMain(),这样操作系统就可以调用了。
2.在APPMODUL.CPP文件中,定义了_tWinMain()
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
看见了吗?里面调用了AfxWinMain(),也就说MFC把对WinMain()的调用转化为对AfxWinMain()的调用,这更加说明,即使在MFC中,也没有什么其它神奇的方法能够跳过或换掉对WinMain()的调用。
3.在WINMAIN.CPP文件中,实现了AfxWinMain()。
AfxWinMain()才实际调用CWinApp->InitApplication()、CWinApp->->InitInstance()完成系统初始化。
似乎微软就是不想让人清楚、明白的了解MFC框架将WinMain()封装的过程。微软在MFC中是这样隐藏调用WinMain()的:
1.在TCHAR.H文件中定义了一个宏:
#define _tWinMain WinMain
这样MFC源代码在编译的时候,_tWinMain就会被替换为WinMain(),这样操作系统就可以调用了。
2.在APPMODUL.CPP文件中,定义了_tWinMain()
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
看见了吗?里面调用了AfxWinMain(),也就说MFC把对WinMain()的调用转化为对AfxWinMain()的调用,这更加说明,即使在MFC中,也没有什么其它神奇的方法能够跳过或换掉对WinMain()的调用。
3.在WINMAIN.CPP文件中,实现了AfxWinMain()。
AfxWinMain()才实际调用CWinApp->InitApplication()、CWinApp->->InitInstance()完成系统初始化。
0 0
- MFC中的WinMain()入口去哪里了?
- VC++编程:MFC程序中的WinMain入口函数
- MFC中的WinMain函数
- MFC 中的Winmain
- MFC中的winmain
- struct device 中的dev_id哪里去了?
- MFC下的控制台跑哪里去了?
- MFC程序中的WinMain函数
- 土拨鼠哪里去了?
- 一元去哪里了
- 文件哪里去了
- 城管去哪里了?
- 文章去哪里了
- skbuff_head_cache去哪里了
- 凌乱--哪里去了
- 为什么mfc的入口是InitInstance()而没有WinMain()
- 为什么mfc的入口是InitInstance()而没有WinMain()
- lightswitch开发中的连接字符串跑哪里去了???
- Unity3d OnApplicationPause与OnApplicationFocus 在安卓平台的应用
- listener监听器_思维导图总结2
- Win10 IoT C#开发 2 - GPIO Pin 控制发光二极管
- (OK) cannot locate symbol "__sF" referenced by
- Java NIO系列教程(七) FileChannel
- MFC中的WinMain()入口去哪里了?
- heap with priority queues
- 51nod 1315 合法整数集
- Fragement初探
- ELK平台的搭建
- shiro 入门,认证
- CentOS6.8 MySQL 5.6实现主从复制
- 仿百度地图街景实现
- 上传图片前端js压缩