第02课 - Win32编程基础知识.ppt_第1页
第02课 - Win32编程基础知识.ppt_第2页
第02课 - Win32编程基础知识.ppt_第3页
第02课 - Win32编程基础知识.ppt_第4页
第02课 - Win32编程基础知识.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Windows程序设计系列基础知识,作者:李星华,纲目,2,代码规范,3,代码规范,良好的编程风格是提高程序可靠性非常重要的手段,也是大型项目多人合作开发的技术基础。通过规范定义来避免不好的编程风格,增强程序的可读性,便于自己和他人理解。代码规范,针对于不同的企业来说各不相同,追其根源,都源于匈牙利命名法。,4,代码规范-变量命名,变量命名原则:变量名属性类型对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。,5,代码规范-变量命名,6,代码规范-变量命名,命名必须具有实际的意义,形式为xMaxVal

2、ue,x由数据类型或属性部分组成(如果x为整型,变量命名为:iMaxValue),Max、Value表示连续意义字符串(由描述部分确定),如果连续意义字符串有多个,则每个具有意义的字符串,首字母需大写(像iMaxValue中的“M”与“V”)。m_类成员变量m_iVal,m_bFlagg_全局变量g_iMsg,g_bFlags_静态变量s_iCount,s_bFlag局部变量中可采用如下几个通用变量:iTemp,iResult,i,j(一般用于循环变量)。,7,代码规范-常量命名和宏定义,常量和宏定义必须具有一定的实际意义:常量和宏定义必须全部以大写字母来撰写,中间可根据意义的连续性用下划线连

3、接,每一条定义的右侧必须在24个位置处有一简单的注释,说明其作用;资源名字定义格式:菜单:IDM_XX或者CM_XX位图:IDB_XX对话框:IDD_XX字符串:IDS_XX,8,代码规范-函数命名,第一个字母必须使用大写字母,要求用大小写字母组合规范函数命名,必要时可用下划线间隔,示例如下:intGetValue();void*Word_GetApp();,9,代码规范-结构体命,结构体类型命名必须全部用大写字母,原则上前面以下划线开始;结构体变量命名必须用大小写字母组合,第一个字母必须使用大写字母,必要时可用下划线间隔。全局数据定义只需注意其用途。,10,代码规范-结构体命,typedef

4、structcharszProductName20;charszAuthor20;charszReleaseDate16;charszVersion10;unsignedlongMaxTables;unsignedlongUsedTables;DBS_DATABASE;DBS_DATABASEGdataBase;,11,代码规范-控件的命名,用小写前缀表示类别:fm窗口cmd按钮cobcombo,下拉式列表框txt文本输入框lablabal,标签imgimage,图象picpicturegrdGrid,网格scr滚动条lst列表框frmfram,12,代码规范-文件头的注释模板,/*/FILE

5、:Demo_09.h/*/POWER:Copyright(c)2012forXXX./AUTHOR:2012-2-78:37Createbylixinghuaforfunctions./VERSION:V1.0.0.1/NOTE:此文件中含有XXX类,各类之间的主次关系,主要功能,/或潜在的问题。以及全局变量或函数的作用。/*/,13,代码规范-文件头的注释模板,每行字符不要超出80个字符(“/”加上“*”的总长度为80个字符;“FILE”为文件名;“POWER”为版权信息,为固定模式无需修改;“AUTHOR”为作者信息,需要时间的写法;“VERSION”为版本信息,版本说明见“引用四:关于版

6、本控制”;“NOTE”为本文件中存在的程序功能进行说明。,14,代码规范-类的注释模板,/=/NAME:XX类/=/LIST:void/AUTHOR:2012-2-611:18Createbylixinghuaforfunctions./VERSION:V1.0.0.1/NOTE:类的使用说明,即主要对外接口(函数)以及主要功能和潜在问题。/=/,15,代码规范-类的注释模板,每行字符不要超出80个字符(“/”加上“=”的总长度为80个字符;“NAME”为类的名称;“LIST”为实现的内部方法(函数)列表,并进行说明;“AUTHOR”为作者信息,需要时间的写法;“VERSION”为版本信息,版

7、本说明见“引用四:关于版本控制”;“NOTE”为本文件中存在的程序功能进行说明。,16,代码规范-函数头的注释模板,/-/FUNC:XX函数/-/IN:变量1,变量1功能的说明;/变量2,变量2功能的说明;/变量n,变量n功能的说明;/OUT:void/RETURN:void/AUTHOR:2012-2-611:18Createbylixinghuaforfunctions./NOTE:此函数实现了XX功能,其中调用了XX函数。/-/,17,代码规范-函数头的注释模板,每行字符不要超出80个字符(“/”加上“-”的总长度是80个字符;“FUNC”为函数的名称;“IN”为输入的参数;“OUT”为

8、在函数内部的输出信息内容,即函数参数作为返回值的说明;“RETURN”函数的返回值(如:函数成功返回TRUE,否则返回FALSE。);“AUTHOR”为作者信息,需要时间的写法;“NOTE”为函数功能的描述,其中包括:功能描述、全局变量描述以及调用模块。,18,代码规范-关于版本控制,版本:V1.0.0.1其中V1.0.0.1红色1表示,每修复一处Bug,在原有数值上累加一次。其中V1.0.0.1红色0表示,添加或删除掉某些功能(函数或类),在原有数值上累加一次。其中V1.0.0.1红色0表示,每维护一次程序,在原有数值上累加一次。其中V1.0.0.1红色1表示,每一次系统整体的更新,包括整个

9、功能甚至需求的变化更新,在原有数值上累加一次。例如V2.20.15.80表示整体需求或框架升级过2次,维护过20次,共添加或删除功能15次,累计修改80次Bug。,19,入口函数,20,Windows数据类型,21,Windows数据类型,22,HINSTANCEHWNDHANDLEHPENHBRUSHHBITMAPHFONTHDCHRESOURCEHCURSOR,Windows新增数据类型:句柄类型,*,23,RECT=struct_RECTintleft,inttop,intright,intbottomPOINT=struct_POINTintx,intySIZE=struct_SIZE

10、intcx,intcy,Windows新增数据类型:结构体,*,24,C语言入口函数,#includeintmain()printf(“HelloWorld”);,25,C语言入口函数,如下程序会有什么样的结果?#includeintmain()for(inti=0;iargc;+i)printf(“%s”,argvi);,26,C语言入口函数,voidmain()intmain(intargc,char*argv)argc作用是什么?Argv作用是什么?argc是命令行总的参数个数;argv是argc个参数,其中第0个参数是程序的全名,以后的参数是命令行后面跟的用户输入的参数。,27,C语言

11、入口函数,例如dir/w/pc:windowsargc=4argv0=dirargv1=/wargv2=/pargv3=c:windows,28,Windows入口函数,intAPIENTRYWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)MessageBox(NULL,”你好”,”警告”,MB_OK);,29,APIENTRY,编译器用来识别程序入口函数的标志。,30,HINSTANCE-实例句柄,句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长

12、的数值,用于标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息。句柄不是一个指针,程序不能利用它句柄来直接阅读文件中的信息。,31,HINSTANCE-实例句柄,句柄在Windows中使用非常频繁,它通常是一个32位的整数,代表着一个具体对象。句柄就像每位同学的学号一样,唯一标识着窗口。,32,HINSTANCE-实例句柄,HINSTANCEhInstance进程的实例句柄,在本程序中,唯一标识进程。HINSTANCEhPrevInstance指向应用程序的前一个进程句柄,在32操作系统该参数

13、为NULL,该参数仅仅被用于16位操作系统。,33,命令行参数,LPSTRlpCmdLine命令行缓冲区,不包括程序的名字。不难猜出,如下代码输出什么吧!?MessageBox(NULL,lpCmdLine,“温馨提示”,MB_OK);,34,窗口显示状态,intnCmdShow窗口是否显示标志SW_HIDESW_SHOW,35,参数意义,第一个参数hInstance是一个唯一的数值或句柄。它与当前程序相关。第二个参数hPrevInstance只对16位Windows是重要的。而在Windows95和WindowsNT中这两个参数是没有意义的第三个参数lpCmdLine是一个字符串,它包含了传

14、给程序的任何参数。这个参数的类型LPSTR是Windows中一种写法,表示一个指向字符串的32位指针。第四个参数nCmdShow指明程序开始运行的状态是正常状态还是最大化状态或最小化状态。,36,WindowsAPI简介,37,什么是API,API:ApplicationProgrammingInterface操作系统提供给开发者的应用程序编程接口。用户使用该接口可以调动操作系统资源,实现自己的应用程序的功能。使用时:必须包含Windows.h头文件。,38,API简介,39,API简介,WindowsAPI是在安装完操作系统之后,就已经存在了,它是以DLL文件的形式存在。常用的Win32函数

15、库所需要的DLL文件如下:GDI32.DLL:屏幕显示及打印功能的函数集;USER32.DLL:鼠标、键盘、通信端口、声音、时钟功能的函数集;KERNEL32.DLL:文件及内存管理(核心部分)功能的函数集;MPR.DLL:Windows32网络接口库;ADVAPI32.DLL:Windows32、ADVAPI32核心部件,40,API简介,MSDN的应用,41,MSDN,MSDN的全称是MicrosoftDeveloperNetwork,是微软公司面向软件开发者的一种信息服务。它是一本非常全面的开发手册,也是一本发发宝典。,42,MSDN,43,43,MSDN,MSDN文档中包含所有的API的函数原型、使用方法介绍以及相应的代码示例,它是一本超大集合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论