MFC中的winmain

来源:互联网 发布:java ocr身份证识别 编辑:程序博客网 时间:2024/04/26 07:38

不设断点,直接F10调试程序,可以看到:

微软在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()完成系统初始化。

那么我的工程没有包含APPMODUL.CPP为什么也会执行呢?
因为在编译时使用的是已经编译好的lib和dll啦
做一个类似的实现。这里用的还是封装main函数

http://www.iamaxiang.cn/wp-content/uploads/2016/12/2016120312114597.zip


源代码中没有一句话,但是程序执行了,并输出aaaa




0 0
原创粉丝点击