好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

软件接口及应用课件.ppt

33页
  • 卖家[上传人]:我***
  • 文档编号:144106880
  • 上传时间:2020-09-06
  • 文档格式:PPT
  • 文档大小:336.50KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第8章 Windows软件接口及应用,Windows软件接口 API系统功能接口 计算机硬件资源获取 Winsock网络编程接口 NetBIOS网络接口 Windows虚拟仪器技术,8.1 软件接口概述,1软件接口的分类 软件接口种类繁多,应用和开发也比较复杂,从系统的角度来看,软件系统大致可分为操作系统软件、应用软件(包括应用系统软件和具体应用的专业软件)等 软件接口可分为如下三类: (1)操作系统接口类; (2)应用系统接口类; (3)应用软件接口类 从软件的应用角度来进行软件分类,软件系统可分为如下几类: (1)操作系统类软件; (2)数据库系统类软件; (3)图形、图像处理系统类软件; (4)办公系统类软件; (5)网络、通信系统类软件; (6)多媒体系统类软件; (7)其他系统类软件2软件接口功能 Windows软件接口的主要功能是为应用程序的开发提供统一的编程界面,达到使不同的软件系统具有相互利用、共享信息的作用具体来说,不同的软件接口具有不同的功能 (1)数据库应用程序编程接口:目前数据库系统种类繁多,按系统规模和功能,数据库系统可以分为大、中、小数据库系统;从应用形式上数据库系统分为网络数据库系统和单机数据库系统;从应用体系上来分,数据库系统分为独立结构(单机结构)、客户机/服务器(Client/Server)结构和浏览器/服务器(Browser/Server)结构。

      (2)多媒体编程接口:在计算机技术高速发展的今天,计算机已不在是一个少数掌握高技术的计算机专家手中的计算工具,而发展成为可以完成工程计算、财务管理、CAI教学,还可以充当CD或VCD机,播放CD、VCD (3)网络、通信应用程序编程接口:无论WinSock还是NetBIOS等网络编程接口都向程序员提供了网络系统应用程序开发的API 函数3软件接口的调用方法 软件接口的调用方法总的来说就是通过动态连接库提供的API函数或方法来实现的但是,由于对函数的包装方式不同,就会使应用的方式有所不同比较显著的就是Microsoft MFC程序员使用Visual Studio如Visual C++进行Windows编程时通常有两种方式: (1)SDK编程:直接使用Windows API编程,API是指Windows以函数形式对外提供的编程接口除了作为Windows扩展的部分API(如DirectX、OLE DB)是以COM形式提供外,Windows基本部分的API都是以独立函数的形式提供的,可以直接使用API编程 (2)MFC编程:微软公司利用C++是对象化的特点,开发了很多C++类。

      利用这些类对Windows的大部分对象及与有关的操作进行了封装,这些C++类合起来就形成了微软基本类库MFC8.2 API系统功能接口,Windows能够提供三种重要且最基本的任务 (1)执行基本的输入和输出功能,负责与键盘、鼠标、显示器、打印机、磁盘文件和串行通信设备等打交道这其中的大多数功能虽然在MS-DOS中也同样支持,但Windows中的基本输入/输出(I/O)函数远比DOS中的丰富更重要的是,Windows中的I/O函数都是与设备无关的 (2)内存管理Windows允许程序动态申请和释放内存,Windows内存管理API允许程序透明地存取扩充内存(Expanded Memory,即由4.0版的LIM EMS标准所支持的页方式内存)和延伸内存(Extended Memory,1 MB以上的可寻址空问,也译为扩展内存)在基于80386和 80486的主机上,Windows还提供了对用户透明的虚拟内存(Virtual Memory,利用内存和磁盘之间进行交换的技术来实现的可共享内存) (3)支持多任务Windows支持多任务,即允许两个或多个程序共享 CPU、内存和 I/O设备。

      Windows允许多任务就意味着Windows的I/O和内存管理API函数能够使多个程序协调地共享资源8.2.1 Windows API的功能与作用,1. 模块 在Windows中,模块是指任何能够装入内存的可执行代码和数据的集合一个模块或是包含一个用户编制的应用程序,或是一个硬件设备驱动程序,或是一个动态连接库(DLLs)函数,也可能是一个程序中所包含的能被另一个程序所存取的数据资源 2. 函数 大多数Windows模块包含了一个或多个能被其他模块中的代码所调用的可执行代码,这些代码称为引出函数由包含这个函数可执行代码的模块引出(Export)该函数;而由调用这个函数的模块引入(Import)该函数8.2.2 Windows API应用实例,在远程工业控制和数据采集中,主计算机(上位机)可利用RS-232C串行接口通过Modem与远程现场计算机(下位机)进行数据通信,实时采集、控制现场计算机发送来的数据,控制远程计算机的工作等远程控制的工作原理如图8.1所示1)用Win32 API 函数:在Win32 API函数中主要定义了下面几个串口操作的函数 (2)用Communication控件:微软提供的MS Communication控件是将串口操作进行封装的OCX控件,使用起来比较方便,也易于操作。

      在Visual Basic和Visual C++中,通过Active控制加载后可直接使用,但没有Windows API函数那样灵活,实现的功能受到一定的限制 (3)用第三方厂商提供的OCX控件或DLLs动态链接库等软件包目前许多软件公司针对串行端口的控制,提供了相应的软件包,它们使用起来灵活方便,而且功能强大,并且可以跨平台操作 1RS-232C控制函数 (1)串行口的打开和关闭 Win32系统把文件的概念进行了扩展,无论是文件还是通信设备均可用CreateFile函数打开或创建该函数的声明为: HANDLE CreateFile(LPCTSTR lpFileName,//文件名 DWORD dwDesiredAccess,//访问模式 DWORD dwShareMode,//共享模式 LPSECURITY_ATTRIBUTES lpSecurityAttributes,//通常为NULL DWORD dwCreationDistribution,//创建方式 DWORD dwFlagAndAttributes,//文件属性和标志 HANDLE hTemplateFile//临时文件的句柄,通常为NULL );,(2)串行口的初始化 在打开通信设备句柄后,需要对串行口进行一些初始化工作,包括DCB结构、缓冲区大小和超时等的设置。

      (3)串行口的读/写操作 读/写串口的函数是ReadFile和WriteFile,可用同步方式执行,也可用异步方式执行,这由CreateFile函数中是否指定FILE_FLAG_OVERLAPPED来决定,指定为异步方式,未指定则为同步方式函数ReadFile和WriteFile的参数和返回值类似,因此仅列出ReadFile函数的声明: BOOL ReadFile(HANDLE hFile; //文件句柄 LPVOID lpBuffer; //读缓冲区 DWORD nNumberOfBytesToRead; //要求读入的字节数 LPDWORD lpNumberOfBytesRead; //实际读入的字节数 LPOVERLAPPED lpOverlapped //指向一个OVERLAPPED结构 ); 2Modem控制命令 MODEM的状态可以分为命令状态和状态两种,命令状态还可以分为命令状态和离线命令状态AT命令由特定的命令前缀“AT”开始,由命令结束标志回车符结束,可以通过串行端口在MODEM处于命令状态时向其发送8.2.3 获取计算机硬件资源,1. 检测CPU的型号 检测计算机的CPU型号可用GetSystemInfo API函数获得,如将下面的代码添加到Button的Click事件中即可: void __fastcall TForm1::CPUCmdClick(TObject *Sender) SYSTEM_INFO systeminfo; GetSystemInfo ( ,3. 检测可用硬盘空间 许多安装程序和应用程序都有检测硬盘空间的操作,这可通过GetDiskFreeSpace API函数来进行。

      如检测C盘的总容量和可用容量,可用下代码: void __fastcall TForm1::HDCmdClick(TObject *Sender) DWORD sector,byte,cluster,free; long int freespace,totalspace; GetDiskFreeSpace(C:, ,5. 检测声卡配置 通过waveOutGetNumDevs()和midiOutGetNumDevs()检测波形设备和MIDI设备,利用waveOutGetDevCaps()和midiOutGetDevCaps()获得声音设备的细节资料 void __fastcall TForm1::SoundCardCmdClick(TObject *Sender) int wavedevice,mididevice; WAVEOUTCAPS wavecap; MIDIOUTCAPS midicap; wavedevice=(int)waveOutGetNumDevs(); //波形设备信息 mididevice=(int)midiOutGetNumDevs(); // MIDI设备信息 if (wavedevice==0) Memo1-Lines-Add (没有发现波形设备); else waveOutGetDevCaps(0, ,6. 检测显示器信息 检测色深则要用API函数GetDeviceCaps获得每像素的比特数和色彩的页面数,然后计算2的“每像素的比特数”次幂即得色彩的梯度数,再计算“色彩的梯度数”的“色彩的页面数”次幂才能得色深。

      由于该段程序用到了幂运算,所以需在程序首部添加#include 语句,程序如下: void __fastcall TForm1::MonitorCmdClick(TObject *Sender) int tcs; long int bpp,cp,tc; Memo1-Lines-Add (显示器分辨率为:+String(Screen-Width)++String (Screen-Height)); bpp=GetDeviceCaps(Form1-Canvas-Handle,BITSPIXEL); tcs=pow(2,bpp); //计算色彩的梯度数 cp= GetDeviceCaps(Form1-Canvas-Handle,PLANES); tc= pow(tcs,cp); //计算色深 Memo1-Lines-Add(总颜色数:+String(tc)); ,8.3 网络编程接口,主要对Windows Socket和NetBIOS的基本功能、原理进行介绍,同时介绍一些网络应用的实用程序,使读者掌握Windows Socket的程序设计方法和基于Internet/Intranet远程控制程序的设计方法。

      8.3.1 网络协议及服务,1协议概念 网络协议(也称通信协议)是指在计算机与计算机之间进行通信时,为了实现数据有序的发送和接收,必须遵循的一些事先约定好的规则(标准或约定)在这些规则中明确地规定了通信时的数据格式、数据传送时序和相应的控制信息、应答信息等内容 为保证计算机网络的开放性与兼容性,网络协议必须遵循标准化的体系结构,目前是指ISO的OSI标准或TCP/IP协议组标。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.