- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2课:Windows运行原理
如何学好VC1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些在编程中常犯的错误。更重要的是理解并能运用C++的各种特性,这些在以后的开发中都会有很大的帮助,特别是利用MFC进行开发的朋友对C++一定要能熟练运用。 2、理解Windows的消息机制,窗口句柄和其他GUI句柄的含义和用途。了解和MFC各个类功能相近的API函数。3、一定要理解MFC中消息映射的作用。4、训练自己在编写代码时不使用参考书而是使用Help Online。5、记住一些常用的消息名称和参数的意义。6、学会看别人的代码。7、多看书,少买书,买书前一定要慎重。8、闲下来的时候就看参考书。#include stdio.h
int main()
{
printf(Hello World!\n); /* 输出 */
return 0; /* 指定返回值 */
}
Windows等价程序
#include windows.h
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int nCmdShow)
{
MessageBox (NULL, TEXT(Hello, World!), TEXT(Hello), 0) ;
return 0 ;
}
头文件Windows.h是最主要的包含头文件,它还包含了其他一些Windows头文件。例如:windef.h: 基本类型定义
winbase.h: 内核函数
wingdi.h: 用户接口函数
winuser.h: 图形设备接口函数
在C/C++程序中,其入口函数都是main。但在Windows程序中,这个入口函数由WinMain来代替。该函数是在winbase.h中声明的,其原型如下:
Int WINAPI
WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nShowCmd);
① WinMain函数被声明成为返回一个int值,同时WinMain函数名前还有WINAPI标识符的修饰。WINAPI是一种“调用约定”宏,它在windef.h中有如下定义:
#define WINAPI _ _stdcall
所谓“调用约定”,就是指程序生成机器码后,函数调用的多个参数是按怎样的次 序来传递,同时函数调用结束后堆栈由谁来恢复,以及编译器对函数名的修饰约定等的 协议。
函数调用约定“协议”有许多,其中由WINAPI宏指定的_ _stdcall是一个常见的协议,内容包括:参数从右向左压入堆栈;函数自身修改堆栈;机器码中的函数名前面自动加下划线,而函数后面接@符号和参数的字节数。
特别地,Visual C++的MFC方式却采用了_ _cdecl调用约定:参数从右向左压入堆栈;传递参数的内存栈由调用者来维护(正因为如此可实现变参函数);机器码中的函数名只在前面自动加下划线。
② WinMain函数的第一个和第二个参数都是HINSTANCE(实例句柄)类型。HINSTANCE中,H表示Handle,是“句柄”的意思。在Windows编程中,句柄是一个应用程序用来识别某些资源、状态、模块等的数字。由于句柄唯一标识着对应的资源、状态、模块等,因而使用句柄就是使(调)用相应的资源、状态、模块。
当应用程序运行多次时,每一次都是应用程序的“实例”。由于同一个应用程序的所有实例都共享着应用程序的资源,因而程序通过检查hPrevInstance参数就可确定自身的其他实例是否正在运行。
③ WinMain函数的第三个参数lpCmdLine用来指定程序的命令行,其参数类型为LPSTR。但在HelloMsg.c中,却将其改为PSTR。这两种数据类型都是合法的,也都是指向字符串的指针类型。其中的STR是“STRING,字符串”的含义,是指以\0结尾的字符串,LP前缀表示“长指针”,在Win32中它与“P”前缀表示的“指针”含义相同。
④ WinMain函数的第四个参数nShowCmd用来指定程序最初显示的方式,它可以是正常、最大化或最小化来显示程序窗口。
纵观上述参数和类型名可以发现它们的命名规则:
? C/C++的类型名仍保留其小写,但新的类型都是用大写字母来命名。
? 参数名
您可能关注的文档
- 男孩(龚字在中间).doc
- 男生服装搭配技巧.doc
- 留守学生管理制度.doc
- 略论扬州出土的波斯陶及其发现的意义 (2).doc
- 疏通服务群众的中梗阻.doc
- 病句练习学生.doc
- 瘦腿绝招给所有粗腿女生.doc
- 白城夏季黑色西服定做【批量加工】.doc
- 白玉蜗牛是当今世界走俏的高档营养保健食品 (2).doc
- 百万公众学习答案.doc
- 2024-2025学年初中物理八年级上册(2024)苏科版(2024)教学设计合集.docx
- 2024-2025学年初中信息技术桂科版七年级下册-桂科版教学设计合集.docx
- 《新冠病毒变异株感染病例的社区防控与疫情监测研究》教学研究课题报告.docx
- 2024-2025学年高中物理人教版选修3-5-人教版2004教学设计合集.docx
- 2024-2025学年高中化学必修第一册沪科版(2020)教学设计合集.docx
- 2024-2025学年高中英语选择性必修 第一册译林版(2019)教学设计合集.docx
- 2025年储能系统在辅助服务市场定价机制下的技术创新与应用.docx
- 2024-2025学年小学综合实践活动沪科黔科版六年级下册-沪科黔科版教学设计合集.docx
- 《金融开放与监管改革:我国金融监管体系变革与金融市场监管能力提升路径》教学研究课题报告.docx
- 初中化学移动学习环境下轻量AI教育资源性能优化与教学创新教学研究课题报告.docx
最近下载
- 2024年全国眼视光行业眼镜验光员技能大赛理论参考试题库(含答案).pdf VIP
- 2025年11课《种树郭橐驼传》理解性默写练习(附参考答案) .pdf VIP
- 21个行业审核作业指导书.doc VIP
- 医院加强信息化建设 提高信息化水平工作情况四篇.docx VIP
- 《从局部抗战到全面抗战》部优教学设计.doc VIP
- 施耐德 ATV320 安全功能手册.pdf VIP
- 汉钟压缩机调试技术-hanbell.ppt VIP
- powmax国迈变频器POWSD-E3 交流伺服驱动器随机手册V17.pdf VIP
- 疫源地消毒总则gb19193-2015.docx VIP
- ASTM F1224-89(2004)E1 美国材料与试验协会标准.pdf VIP
文档评论(0)