winmain()在mfc框架中到底是怎样的一个来龙去脉

lzhljylg 2000-09-01 12:32:00
各位大虾:
在下系vc++初学者,苦无老师点化,只好去看一些入门的书。看过这些书以后,有些想法有不吐不快的感觉。我窃以为只要是涉足vc++编程的人,就必定是有意于软件开发的人,这些人对所学习的东西不但有知其然,而且还有要知其所以然的兴趣和必需(与此相对照的是软件应用的人,比如officegirl用一用word,文件打印出来了就算一切大功告成,至于《inside word》之类的是书大可不必去深究的),但不幸的是这些书的作者拿vc++的书和word的书当成了一回事--都写成了“傻瓜书”,把其绝大部分的篇幅都用在了appwizard和classwizard之上,次些的甚至敢把菜单介绍写得占去半壁江山,而对于那些有助于读者真正掌握windows编程的关于windows和mfc的内在机制却是蜻蜓点水或者干脆就提都不提,比如:对winmain()在mfc框架中到底是怎样的一个来龙去脉,我就一直没有看到哪本书把这个问题正经当一回事。难道这个问题真的就那么无足轻重吗?我却一直被这个问题折磨得死去活来,虽然我已用那两个wizard编了一个俄罗斯方块。请教教我,不胜感激!!!!!!!!!
心如焚客
...全文
170 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Holly 2000-09-02
  • 打赏
  • 举报
回复
1.实际上WinMain()应在微软的扩展DLL中,不过其DLL大多导出的只有序号没有名字,我也不确定是哪一个,只能猜测是MFC4x.DLL,因为扩展DLL的行为经过专门的处理,它可以与主程序共用程序堆,所以DLL中的函数也可以作为程序入口(具体作法尚不清楚);
2.基本是这个流程;
3.指哪些方面?
cheka 2000-09-02
  • 打赏
  • 举报
回复
看侯俊杰的书吧,Win32方面的内容交待的挺好,
CSDN上就有免费下载的电子版。
lzhljylg 2000-09-01
  • 打赏
  • 举报
回复
非常感谢!!!
不过,还有几事不明:
1.似乎经appwizard产生的代码群中不见winmain(),是否它是编译时额外添加进去的?
2.一个简单程序的执行过程可否如下理解:theApp全局对象产生-->进入winmain()-->执行theApp的有关成员函数-->执行run()直至exit?
3.千言万语不知从何说起,可否抽空赐一长贴,兼顾说一些感性而经验的东西
再次感谢!!!
Holly 2000-09-01
  • 打赏
  • 举报
回复
winmain()在MFC中自动给出一个全局的函数(具体见MFC\SRC\APPMODUL.CPP)在源代码中写成_tWinMain(...)实际上就是WinMain,在TCHAR.H中可以见到:
#define _tWinMain WinMain
所以实际上WinMain仍然存在,只是MFC帮你写了。
有兴趣你可以在这个函数中设置断点跟踪到AfxWinMain(...)中你会发现其实SDK的WinMain的东西全然都在,只是增加了许多MFC的线程初始化等MFC的专用的代码!
太细节的东西我一下也说不清楚,建议你看一下侯捷的书讲了许多MFC的内部实现!
当然主要还是靠自己多跟踪MFC的源代码!还是比较精彩的!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧