VC++MFC程序中的WinMain函数(一)

目录

MFC程序中的WinMain函数

创建Win32应用程序

接上:VC++基于MFC的程序框架剖析(前言)

接下:VC++基于MFC的程序框架剖析(二)


MFC程序中的WinMain函数

创建Win32应用程序

进入 WinMain 函数、

设计窗口类、

注册窗口类、

产生窗口、

显示窗口、

更新窗口,

最后进入消息循环,将消息路由给窗口过程函数去处理。

遵循这条主线,我们在写程序时就有了一条很清晰的脉络。

但在编写MFC程序时,找不到这样一条主线。

在当前Test项目中查找WinMain函数:

在Visual Studio开发环境中单击【编辑】菜单,选择【查找和替换】→【快速查找】菜单项(或者通过快捷方式,同时按下键盘上的“Ctrl+F”键),在弹出的“查找和替换对话框”中“查找内容”文本框内输入“WinMain”,“查找范围”设置为“整个解决方案”。如图所示:

单击【查找全部】按钮,结果找不到WinMain 函数。并且WNDCLASS、CreateWindow也找不到。这是因为微软在MFC的底层框架类中封装了这些每一个窗口应用程序都需要的步骤,目的主要是为了简化程序员的开发工作。为了更好地学习和掌握基于MFC的程序,有必要对MFC的运行机制及封装原理有所了解。

WinMain函数是所有Win32程序的入口函数,就像纯C/C++程序下的main函数一样。创建的MFC程序也不例外,它也有一个WinMain函数,但这个WinMain函数是在程序编译链接时由链接器将该函数链接到Test程序中的。

安装完Visual Studio 2017后,在安装目录下,微软提供了部分MFC的源代码,可以跟踪这些源代码,找出程序运行的脉络。

如何知道VS安装位置:

如何找到电脑软件的安装路径——以查找Visual Studio 2017安装位置为例

我的 MFC 源代码的具体路径(可作参考):

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\atlmfc\src\mfc

在安装目录下搜索关键字“*.cpp”来找到源码所在的目录:

在找到相应的目录后,在资源浏览器的“高级选项”下选中“文件内容”:

然后在搜索框中输入“WinMain”,按下键盘上的回车键,搜索结果如图所示:

WinMain函数在appmodul.cpp这个文件中。保持Test项目的打开状态,然后双击appmodul.cpp即可在Visual Studio环境中打开该文件,在其中可以找到如下所示代码:

extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
	_In_ LPTSTR lpCmdLine, int nCmdShow)
#pragma warning(suppress: 4985)
{
	// call shared/exported WinMain
	return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}

接上:VC++基于MFC的程序框架剖析(前言)

接下:VC++MFC程序中的WinMain函数(二)

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米酒馆

鼓励鼓励,鼓励很重要啦~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值