欢迎来到天天文库
浏览记录
ID:42028150
大小:299.01 KB
页数:26页
时间:2019-09-06
《开发Windows应用程序的技术基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章开发Windows应用程序的技术基础本章主要目的是向读者介绍编写Windows应用程序所采用的基本技术,约定和惯例,API的结构与基本用法等作了介绍,对Windows应用程序的各个组成部分也作了初步介绍,并用框图的形式介绍Windows应用程序的工作原理。3.1应用程序的结构与编译解决多任务的关键是:控制核心应该从程序本身转移到Windows操作系统。应该由Windows操作系统决定那个应用程序可以占用CPU时间,程序的结构也不再是过程式程序中的赋值、循环、分支等C语言中常见的结构,而是消息,处理。为
2、了解决这个问题,应用程序采用一种称为”事件驱动结构”是合适的。所谓非抢占式是指一旦这个应用程序取得了执行权,就一直要把这个程序执行下去,除非遇到新的消息来干预。否则,其他程序没有办法执行。如果把非抢占式和”事件驱动结构相结合,那就是Win16操作系统下的应用程序。3.1.1Windows应用程序的结构和C语言程序结构的比较C语言程序的主体结构是intmain(){………}定义函数1定义函数2……定义函数n3.1.1Windows应用程序的结构和C语言程序结构的比较而Windows应用程序的结构可以用下面的框
3、图来表示。图3-1Windows应用程序的结构有两个函数所组成,一个是WinMain函数,另一个称为窗口函数,又称窗口消息处理程序。WinMainWindowsFunction3.1.2Windows应用程序的编译和C语言程序编译的比较1、C语言的编译图示yy1.h,yy2.h,…,yyn.hok1.c,ok2.c,…,okn.cYes.objYes.exemath.lib,…,graphics.lib2、Windows应用程序的编译C语言的编译图示Windows程序的C代码文件Winddows程序的资源对
4、话框编程器图像编程器字体编程器资源编译器C编译器链接器3.1.3编译应用程序所需的六个基本文件源代码文件,文件的后缀是.C或.CPP;资源文件位图(.bmp)图标(.ico)菜单等资源(.res)对话框(dlg)字体(fnt)也资源描述文件(.rc)资源编译器会对RC文件提供的资源信息进行生成和编译,并把它们插入到exe文件,形成真正的可执行文件。3.1.3编译应用程序所需的六个基本文件头文件(.h)WINDOWS.H头文件WINDEF.H头文件,包含有大量简单和集合数据的定义,这些数据在Win32编程中经
5、常要用到WinNT.h项目文件(.MAKE)模块文件(.DEF)3.1.3Windows程序中基本数据类型Win32类型对应的C类型说明ULONGunsignedlong无符号长整数ULONGd=56989;UCHARunsignedchar无符号字符UCHARc='4';DWORDunsignedlong无符号长整数、双词BOOLint布尔型BOOLflag=0;BYTEunsignedchar无符号字符称为字节WORDunsignedshort无符号短整数、词INTint整数UINTunsignedin
6、t无符号整数HANDLEvoid*无符号整数指针HINSTANCEvoid*实例句柄(代号)HICONvoid*图标句柄(代号)HMENUvoid*菜单句柄(代号)HMENUhMenu;3.2Windows应用程序设计接口(API)两种APIWin16APIWin32API三个核心API组件Win16APIWin32API说明USER.EXEUSER32.DLLUSER组件负责窗口管理,包括消息,菜单,光标,通信,计时器和一些与窗口显示无关,但与控制窗口显示有关的函数。GDI.EXEGDI32.DLLGDI
7、是图形设备接口,它管理用户介面和图形绘制,包括windows元文件,位图,设备描述表和字体。KRNL386.EXEKERNEL32.DLLKERNEL处理存贮器底层功能,任务和资源管理,它是Windows的核心3.3标识符的匈牙利命名惯例为什么此惯例称为匈牙利命名惯例。匈牙利命名惯例的两条约定。标识符以一个事者几个小写字母开始,这些小写字母表示标识符的数据类型大小写混杂写,使得标识符具有一定的含义,便于理解,增强可读性。#includeintWINAPIWinMain(HINSTANC
8、EhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow){MessageBox(NULL,TEXT("Hello,WindowsXP!"),TEXT("HelloMsg"),0);return0;}3.3标识符的匈牙利命名惯例字首数据类型cchar或WCHAR或TCHAR类型byBYTE(无正负号字符)类型nshort类型iint类型iCmdShow
此文档下载收益归作者所有