




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 程序是怎样“码 成的 程序是怎样 码”成的 程序的入口点及启动函数 Windows应用程序必须拥有一个在应用程序启动运行时调用的进入点函数(Main),操作 系统实际上并不调用你编写的进入点函数。以C/C+为例子,它调用的是C/C+运行期启动 函数。该函数负责对C/C+运行期库进行初始化,这样,就可以调用malloc和free之类的函数 。它还能够确保已经声明的任何全局对象和静态C+对象能够在代码执行以前正确地创建。 应用程序类型 需要ANSI字符和字符串的GUI应用程序 需要Unicode字符和字符串的GUI应用程序 需要ANSI字符和字符串的CUI应用程序 需要Unicode字符和字符串
2、的CUI应用程序 进入点 WinMain wWinMain main wmain 嵌入可执行文件的启动函数 WinMainCRTStartup wWinMainCRTStartup mainCRTStartup wmainCRTStartup、 链接程序负责在它连接可执行文件时选择相应的C/C+运行期启动函数。如果设定了 /Subsystem:windows连接程序开关,那么该链接程序期望找到一个WinMain或wWinmain 函数。如果这两个函数都不存在,连接程序便返回一个"未转换的外部符号"的错误消息。 否则,它可以分别选择WinMainCRTStartup函数或wW
3、inMainCRTStartup函数。 程序是怎样“码 成的 程序是怎样 码”成的 应用程序的消息循环 在早年直接用Win32/Win16 API写程序的时代,消息循环是我们必须搞懂的第一个观念。现在,不管你用是 Windows上面的哪一套Application Framework(MFC、VCL、VB、.NET Framework),甚至Unix、Linux、 MacOSX上面的Application Framework,都不太容易看到消息循环。事实上,消息循环依然存在,只是被这些 ApplicationFramework包装起来,深深地埋藏在某个角落。 1、从_tWinMain内,程序进入
4、主消息循环; 2、消息循环从消息队列(Message Queue)中取得一个消息(透过调用GetMessage()。每个执行中的程序都有一个 属于自己的消息队列; 3、消息循环根据消息内容来决定消息应该送给哪个Windows Procedure(WndProc),. 这就称为消息分发(Message Dispatch)。通常“每一种”窗口或控件(control)都有一个Windows Procedure,来处理该种窗口/控件的行为; 4、Windows Procedure根据消息内容来决定应该调用哪个函数(利用Switch/Case语法);. 5、Windows Procedure处理完,控制
5、权回到消息循环。继续进行2、3、4、5的动作; 6、当消息队列为空的时候,GetMessage(无法取得任何消息,就会进入Idle(空闲)状态,进入睡眠状态(而不是 Busy Waiting)。当消息队列不再为空的时候,程序会自动醒过来,继续进行2、3、4、5的动作; 7、当取得的消息是WM_QUIT,GetMessage(就会得到0的返回值,因而离开消息循环,程序结束。程序会利用调用 PostQuitMessage(来将WM_QUIT放置进消息队列中,来造成稍后结束,而不会直接贸然跳离开循环来结束。 代码之美 1. 代码规范 1. 2. 3. 注释 命名 代码风格 我们这里的代码之美只在于代码的外观,写出的代码工整,逻辑 我们这里的代码之美只在于代码的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 城镇经济学考试题及答案
- 中班健康课含课件
- csp2021考试题目及答案
- 餐服员培训考试题及答案
- 2025至2030有色金属冶炼行业产业运行态势及投资规划深度研究报告
- 保健品员工考试题及答案
- 心内科化验检查
- 小班健康教案:刷牙洗脸好习惯养成
- 安徽监理考试题库及答案
- 海安高三数学试卷
- 汽车网销电话邀约话术培训
- 江苏省南京市2024-2025学年高二(下)期末物理试卷
- 煤矿掘进试题库及答案
- 妊娠期合并阑尾炎的护理
- 2025至2030中国焦化行业市场发展分析及发展趋势与前景报告
- 音乐数据分析与用户行为研究-洞察阐释
- 2025至2030中国电子级磷酸行业市场发展分析及市场需求与投资方向报告
- 电力维修抢险方案(3篇)
- 民警心理健康课件
- 幼小衔接汉语拼音课件(合集)
- DZ∕T 0148-2014 水文水井地质钻探规程(正式版)
评论
0/150
提交评论