VC++到VS中以后:
从main函数开始,没有main从wmain开始wmain是main的扩展(支持Unicode字符,比如你要给你的程序传参为Unicode字符的话)
不同的是很多编程时都把main或wmain给隐藏了,留下的是另一些主函数,但这些假的主函数名要么是#define
为main或wmain
窗口程序de主函数是WinMain或wWinMain(),同样也常被隐藏掉
MFC编程中
主函数是AfxWinMain()
而AfxWinMain()也是由WinMain()函数调用的,并且WinMain()所有的功能就是调用了AfxWinMain()
简单说:
(1)MFC用AfxWinMain代替了原来C编程中的WinMain();
(2)AfxWinMain()是MFC已经帮你写好了,并由Windows系统调用,不用你写了;
(3)在AfxWinMain()被执行之前,需要有了一个CWinApp类全局对象,由你自己建立;
(4)而CWinApp类是CWinThread类的派生类,而且当前的CWinApp类全局对象(这个对象有且只能有一个),然后Windows系统启动你的程序,调用AfxWinMain(),AfxWinMain()中通过调用全局函数AfxGetApp()来得到指向你建立的CWinApp对象的指针(MFC先编好的AfxWinMain()函数可以调用你自己后来建立的对象,这是C++的特性)。
这样MFC程序先建立应用程序对象,然后将内部准备好的WinMain()与之连接,执行一系列动作,从而使程序运行。
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
是消息映射,与WinMain无关,这两句是将ID_FILE_NEW和ID_FILE_OPEN两个句柄与创建新文件和打开文件函数关联。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)