《Windows界面编程》PPT课件.ppt

上传人:za****8 文档编号:2980519 上传时间:2019-12-05 格式:PPT 页数:29 大小:211.51KB
返回 下载 相关 举报
《Windows界面编程》PPT课件.ppt_第1页
第1页 / 共29页
《Windows界面编程》PPT课件.ppt_第2页
第2页 / 共29页
《Windows界面编程》PPT课件.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
,第7章 Windows界面编程,7.1 文件IO 7.2 控制台执行环境 7.3 GUI程序执行环境 7.4 多线程编程,7.1 文 件 I/O,文件是指存放在外部存储介质上的数据集合。每个文件都必须有一个文件名,文件的命名规则由文件系统来确定。,7.1.1 文件及其基本操作,根据文件的存储格式,可分为ASCII码文件(又称为文本文件)和二进制文件。,对文件的基本操作有4种,包括打开文件、读文件、写文件、关闭文件。 对文件的读或写操作的最小单位是一个字节,一次读或写操作可以传送多个字节。,7.1.2 文件操作的基本函数,C语言提供了一些库函数,用于对文件的打开、读取、写入、关闭等。表7-1列出了常用的一些库函数。在汇编程序中,也可以调用这些库函数。,1. 打开文件 在打开文件时,可以选取不同的模式,见下表。,2. 文本文件和二进制文件的读写操作 一般来说,对二进制文件的读写操作,使用fread和fwrite函数,fread将文件的内容原封不动地读入到内存中,fwrite将内存的内容写入到文件中。 对文本文件的操作,一般采用fgets和fputs。,3. 文件句柄,系统为每个打开的文件都在内存中开辟一个区域,用于存放文件的有关信息(如文件名、文件位置等)。这些信息保存在一个结构类型变量中,该结构类型由系统定义,名为FILE。打开文件时,库函数返回一个指向FILE结构的指针,称为文件句柄。,在程序开始运行时,系统中已经定义了3个标准文件stdin、stdout和stderr。这3个文件不需要打开,可以直接使用。 (1)stdin (2)stdout (3)stderr,4. 文件指针 每一个被打开的文件都有一个读写位置指针,指向当前的读写位置。每次读写一个(或一组)数据后,系统自动将位置指针移动到下一个读写位置上。文件指针是一个长整数,表示当前读写位置在整个文件中的偏移。,5. 文件处理实例 对文件可以进行创建、打开、读、写、关闭等操作。灵活运用这些操作,就可以实现高级的功能。 例7.1 对文件内容进行加密、解密。 (见课本),7.2 控制台执行环境,在控制台上执行的程序,属于文本界面,可以对它的输入或输出进行重定向。执行程序时,在命令行上也可以指定一些参数,程序在执行过程中可以获得这些参数。本书前面的实例程序大都采用控制台界面。,7.2.1 输入/输出重定向,1. 输入重定向 scanf、getch、getchar等函数从标准输入设备stdin中读取字符。,2. 输出重定向 对程序的输出,同样在程序名后跟上: 输出文件名 这是输出的重定向。程序中用printf输出的结果全部写到该文件中。如果该文件已经存在,则原先的内容被清除掉,执行程序后,文件的内容为该程序的输出。如果要将程序的输出添加到一个文件的末尾,保持该文件原先的内容,可以用“”格式: 输出文件名 输入/输出重定向可以同时使用。,7.2.2 命令行参数及程序返回值,1. 命令行参数 除了重定向文件名等特殊参数外,命令行上的输入作为main函数的两个参数argc和argv传送到程序中。 2. 程序返回值 main函数的返回值,作为整个程序执行的结果。,7.3 GUI程序执行环境,在GUI(图形用户界面)中,用户与计算机通过图形图像以及文本进行交互。在Windows 系统中,GUI程序显示出特定的窗口、图标、按钮、对话框等对象,而用户通过鼠标或键盘控制、操作这些对象。,7.3.1 窗口,1. 窗口的创建 2. 窗口的销毁 3. 创建、销毁窗口的汇编语言程序,7.3.2 菜单,1. 在资源文件中描述菜单内容 2. 创建窗口类指定菜单名 3. 处理菜单消息 4. 编译连接,7.3.3 对话框,1. 对话框的子窗口控件 2. 子窗口控件之间的控制 3. 消息处理,7.3.4 GDI编程,GDI(Graphics Device Interface,图形设备接口)是Windows的一个核心部件,它接受来自Windows应用程序的绘图请求,即GDI函数调用,将这些请求传给相应的设备驱动程序,在硬件上完成特定的输出,例如打印机、屏幕等。 GDI可以完成3种类型的图形输出。 (1)矢量输出 (2)光栅图形输出 (3)文本输出,1. 设备描述表 2. 画矩形 3. 显示位图 4. 显示文本,7.4 多线程编程,运行一个可执行文件时,Windows操作系统会创建一个进程,为该进程生成私有内存地址空间(包括代码区、数据区、堆栈区),把磁盘上的可执行文件映射到该空间上。接着,操作系统自动地为该进程创建一个主线程,主线程通常从可执行文件的第一条指令处开始执行。 除了主线程外,在程序中创建新的线程,创建出的线程和主线程在同一个进程环境中执行,共享相同的私有内存地址空间、全局变量、资源、文件句柄等。但是,每一个线程都有一个独立的堆栈。,利用线程能够并发运行的特点,可以将一个应用程序内的具体操作分成若干个线程。 因此,采用多线程能够提高CPU的使用效率,发挥多CPU、超线程、多核系统的优势。,7.4.1 线程的创建和终止,调用CreateThread函数创建新的线程,其参数如下: CreateThread PROTO lpThreadAttributes:DWORD, dwStackSize:DWORD, lpStartAddress:DWORD, lpParameter:DWORD, dwCreationFlags:DWORD, lpThreadId:DWORD,7.4.2 线程的同步,线程能够共享进程的资源,包括数据区中的全局变量。多个线程使用同一个全局变量,必须考虑同步的问题。 例7.9 线程同步示例。 (见课本),7.4.3 互斥锁,一个互斥锁可以作为一个“令牌”,每次只允许一个线程访问共享的全局变量。互斥锁用于线程之间的互相排斥:在任何一个时刻,只有一个线程可以“拥有”一个互斥锁。,(1)创建互斥锁。 (2)获取互斥锁。 (3)释放互斥锁。,7.4.4 线程同步演示程序,例7.10 使用互斥锁同步线程对全局变量访问。 (见课本),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!