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编了一个俄罗斯方块。请教教我,不胜感激!!!!!!!!!
心如焚客
...全文
174 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的源代码!还是比较精彩的!
我将带领大家来系统学习Windows的窗口编程,包括消息、窗口、GDI绘图、游戏开发等。本课程比较基础,非常适合初学者入门,读者可以边学习边实践。具体的章节目录和课程内容如下所示:---------------------------------------------Windows游戏编程系列之1:GUI界面编程及游戏入门实战1、Windows创建第一个窗口 WinMain入口函数 5进行Windows编程的调试手法 6窗口从哪里来? 7窗口编程的步骤 7窗口编程需要的主要结构 8窗口编程需要的主要API 92、Windows的窗口过程与消息机制 如何留住窗口? 121)Windows的消息与消息循环 142)消息处理函数与常用消息 17)Windows的窗口过程函数 19 3、GDI编程之设备上下文 1)GDI的通用编程框架 222)GDI的绘图步骤 253)GDI获取设备句柄 254、GDI编程之绘制几何图形 画点、线 28颜色COLORREF 29矩形 29画圆、饼图、弦图 305、GDI编程之自定义画笔画刷画笔简介 32画刷简介 33画笔案例 33画刷案例 346、GDI编程之绘制文字 DrawText函数 35TextOut 函数 (wingdi.h) 36CreateFont函数 37绘制文本案例 377、GDI编程之绘制位图 位图简介 381)在资源添加位图资源 392)从资源加载位图: LoadBitmap 393)创建一个与当前DC相匹配的DC(内存DC) 394)将bitmap放入匹配的DC:SelectObject 405)成像(1:1 比例 ) 406)取出位图 407)释放位图 418)释放匹配的DC 41绘制位图案例 41   8、Windows鼠标键盘消息 一、键盘消息 421、键盘消息 422、消息参数: 423、消息的使用: 424、键盘消息的案例代码 43二、鼠标消息 441、基本鼠标消息 442、双击消息 443、滚轮消息 454、不响应双击消息 45 9、Windows定时器消息 定时器消息介绍 47创建定时器 47关闭定时器 47定时器消息案例代码 4810、GDI游戏之跳舞动画 11、GDI游戏之走路动画 12、GDI贪吃蛇游戏实战  

16,472

社区成员

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

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

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