Win32应用程序的入口是WinMain(),而在MFC中却找不到WinMain函数,这个家伙究竟去了哪里了呢?

在MFC中最开始的操作往往是这样的:

先定义一个全局的theApp,比如CWinTestApp theApp;这一步会调用到CWinTestApp的构造函数;

而后实际上会调到WinMain()函数,只不过这个过程是runtime去调用的,我们看不到罢了.

百度上的观点,批判地去思考:

https://zhidao.baidu.com/question/198100429.html

WinMain()跟main()函数一样,是用run time自己调用的。C++程序启动的顺序是这样的:
1. 构造全局对象。在MFC程序里,theApp就是全局对象。因为theApp的类型是CTestApp,所以CTestApp的构造函数会被调用
2. 调用main()或者WinMain()。如果是MFC程序,会默认提供一个WinMain()函数的实现,你不需要自己另外写。如果你自己另外写一个WinMain(),会引起Link Error。
以上两步都是C++ Run Time做的,不需要你自己写什么代码。你可以认为C++就是这么规定的。
补充:
是,有代码去调用它。但是这些代码不需要你来写,对你来讲也没有什么意义。这些代码属于runtime

MFC的WinMain在哪呢相关推荐

  1. 《深入浅出MFC》第六章 MFC程序的生死因果

    SDK程序设计的第一要务是理解最重要的数个API函数的意义和用法,MFC程序设计的第一要务则是理解几个最重要的类,最基本的两个类为CWin App和CFrameWnd. 开发MFC程序需要的函数库:W ...

  2. 学习MFC首先要知道的--程序执行顺序

    MFC的程序执行顺序 很多刚学MFC的人都会被MFC给弄的晕头转向.以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如 ...

  3. mfc编程 孙鑫_孙鑫VC++视频教程笔记-(3)MFC程序框架的剖析 附1-SDI程序流程图

    1,寻找WinMain人口: 在安装目录下找到MFC文件夹下的SRC文件夹,SRC下是MFC源代码. 路径:MFC|SRC|APPMODUL.CPP: _tWinMain(HINSTANCE hIns ...

  4. 深入浅出话VC++(2)——MFC的本质

    一.引言 上一专题中,纯手动地完成了一个Windows应用程序,然而,在实际开发中,我们大多数都是使用已有的类库来开发Windows应用程序.MFC(Microsoft Foundation Clas ...

  5. 六、MFC 程序的生死因果 (学习笔记)

    MFC程序的生死因果 项目HELLO 理想如果不向实际做点妥协,理想就会归于尘土. 中华民国还得十次革命才得建立,对象导向怎能把一切传统都抛开. 以传统的C/SDK 撰写Windows 程序,最大的好 ...

  6. 如何优雅的写UI——(1)MFC六大核心机制-程序初始化

    很多做软件开发的人都有一种对事情刨根问底的精神,例如我们一直在用的MFC,很方便,不用学太多原理性的知识就可以做出各种窗口程序,但喜欢钻研的朋友肯定想知道,到底微软帮我们做了些什么,让我们在它的框架下 ...

  7. 深入浅出MFC学习笔记(第6章 :MFC程序的生死因果)

    第六章:MFC程序的生死因果 本章主要是从MFC程序代码中,找出一个windows程序原本该有的程序入口点.窗口类注册.窗口产生.消息循环.窗口函数等操作.抽丝剥茧彻底理解一个MFC程序的诞生与结束. ...

  8. MFC底层窗口的实现

    MFC底层窗口的实现 代码: # include <windows.h> //底层实现窗口的文件 //6.处理窗口过程 此过程可先跳过 是最后一步 LRESULT CALLBACK Win ...

  9. mfc cedit 默认显示内容_VS2013/MFC编程学习(一)

    一.前言 1.1 VC++简介 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台.VC++不仅是一 ...

最新文章

  1. 一言不合就删库跑路?万名贡献者和阿里巴巴开源的二三事
  2. 降低前端业务复杂度新视角:状态机范式
  3. cocos2dx 3.0 windows平台 中文乱码解决
  4. FineUI分组显示弹框最新的在最上边
  5. 玩转你的AlphaGo(MAC OS)
  6. exec还原oracle,symantec Backup exec 恢复Recovery Oracle 数据库
  7. 21接力题典1800 数一 重积分 P46 T18
  8. gerrit常见问题及解决方法
  9. Excel-冻结窗口和筛选
  10. 助推外贸高质量发展,玉湖冷链模式引发服贸行业高度关注
  11. i9级E52450处理器_来了!十代英特尔酷睿标压处理器,实测跑分首发
  12. Elasticsearch7.x证书过期简单解决方法
  13. JavaSwing——利息计算器
  14. 使用 VMware Server 在 Oracle Enterprise Linux 上安装 Oracle RAC 10g
  15. 冒泡算法java代码实现
  16. redis value最大值_Redis value的5种类型及常见操作
  17. fpu测试_浮点运算单元FPU能给电机控制带来什么?
  18. linux gdm错误,gdm 系统出错且无法恢复
  19. from .cv2 import * ImportError: libGL.so.1: cannot open shared object file: No such file or directo
  20. erlang踩坑记录之os_mon

热门文章

  1. 【RocketMQ】4、Windows10单机环境部署
  2. 分布式和集群的区别和联系
  3. Jbuilder 配置常见问题的处理
  4. JAVA_SSM火车售票系统订票(含论文)毕业设计【演示视频】
  5. 用selenium打开谷歌浏览器提示 chromedriver.exe停止运行
  6. Proteus存储器读写数字并在数码管显示
  7. Linux服务器手动搭建(ubuntu)操作简单
  8. 最新软件库APP源码前端+后端整套独立后台
  9. NOI OJ 1.5 16:买房子 C语言
  10. mysql创建角色集_mysql8之新增角色