


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文全文信息检索系统中索引项技术及分词系统的实现
摘要该文提出了一种在Windows3.1保护模式下,通过动态连接库(DLL)生成中断服务程序代码,实现外设与Windows应用程序实时通信的有效方法。一、前言计算机的日益普及和计算机技术日益成熟,使得计算机在工业控制监测中的应用渐渐深入。但工业应用不同于其它方面,它要求有较强的实时性。现在有很多的DOS软件在运行过程中通过挂接外部中断方式实现DOS应用软件与外设的实时通信,这种方法实现起来十分简单。而在Windows中应用程序能否也能够利用外部硬中断实现外设与Windows应用程序的实时通信呢?答案是肯定的。这里的关键是要解决好中断代码与Windows应用程序相互之间交换信息的问题。从外设发送异步的硬中断,通过中断处理程序传递一条信息给Windows应用程序。这时可以初始化相关端口,准备好数据,然后进行数据传送,从而做到实时通信。实现Windows应用程序响应外部中断的方法有很多,如Microsoft公司自己开发的SDK、DDK软件包,使用嵌入式汇编等等。本文将介绍一种在BC++3.1的基础上利用Windows3.1拥有的一些功能实现Windows实时通信的实例。二、中断代码的位置在Windows中,几乎所有的异步事件都是由中断处理程序来管理的。中断处理程序包含在设备驱动程序中,由Windows在环境初始化中安装。例如,KEYBOARD.DRV、MOUSE.DRV和COMM.DRV均含有中断处理程序,以处理相应的键盘、鼠标和串行口的异步中断。可以仿照标准设备驱动程序,编写中断处理代码,以响应外设的通信请求,从而完成一次实时通信。中断代码既可以包含在应用程序的可执行代码中,也可以包含在动态连接库(DLL)中。包含在应用程序中的代码只能在一个程序中使用,而在动态连接库中的代码则可以在Windows系统中所有的应用程序所共享。这样不仅在整个Windows系统中只有一个中断代码的副本,提高了内存的使用效率,更重要的是可以防止由于同时存在多个中断代码的副本而发生冲突。本文将在DLL中编制中断处理程序。当动态连接库被装入时,要调用DLL库的入口点LibMain(),利用这一点可以执行一些初始化工作,可以分配一些内存块,可以初始化一些全局变量或者静态变量,可以安装中断服务程序的代码等等。例如:voidinterrupt(oldIsr)(--CPPARGS)/*旧的中断服务程序地址*/LibMain(HANDLEhInstance,WORDwDataSeg,WORDcbHeapSize,LPSTRlpszCmdLine){…oldIsr=getvect(IRQNum);/*IRQNum指中断号*/setvect(IRQNum,newIsr);/*newIsr指新中断服务程序代码*/return(1);}函数setvect()既可在实模式下,也可在保护模式下设置中断处理向量。上述代码也可以放在一个由用户设置的引出(export)函数中,在应用程序中用户可以调用此引出函数来安装中断服务程序代码。由于中断可以在任何时刻发生,中断代码必须驻留在内存中,并且在应用程序运行的过程中一直处于某一固定内存中。这一点无论是在实模式还是在保护模式下都是一致的。在DLL的模块定义文件中应注意:1.CODE语句为固定代码段,即FIXED;2.EXPORTS语句要引出被应用程序和其它DLL用作入口点的函数。然后在应用程序的窗口函数中,对WM-CREATE消息进行处理时调用此函数来初始化DLL中的静态变量hWndApp:CASEWM-CREATE:…SetIsrWin(hwnd);/*hwnd指应用程序窗口句柄*/定义一个在应用程序中使用的消息:#defineISRM-RUPTWM-USER+255最后在DLL中的中断服务程序代码中,调用PostMessage即可完成Windows应用程序和中断服务程序代码相互的信息交流:voidinterruptnewIsr(--CPPARGS){…PostMessage(hWndApp,WM-RUPT,wParam,lParam);…}四、程序实例本示例先安装在DLL中的外中断服务代码,通过386/AT总线上的中断申请线(IRQ12)外触发,由中断服务代码发送一条消息WM-RUPT通知Windows应用程序外设有实时通信请求,应用程序收到这条消息后,在窗口用户区显示一条信息,表明已和外设联络上,并同时鸣叫一声喇叭。程序分为两部分:DLL库代码和Windows应用程序代码。1.DLL库代码/***interruptincludefile,namedhandle.h***/voidFARPASCALSetIsrWin(HWNDhwnd);voidFARPASCALSetIRQNum(unsignedcharIRQ);/***moduledefinationfile,namedhandle.def***/LIBRARYHANDLEEXETYPESWINDOWSSTUB'WINSTUB.EXE'CODEPRELOADFIXEDDATAPRELOA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年份三月份装修合同墙漆色差判定标准与赔偿机制
- 2025年江苏省职业院校技能大赛中职组(护理技能)参考试题(附答案)
- 计算机二级考试知识图谱试题及答案
- 口腔诊所后勤人员年度总结
- 幼儿园德育工作年终总结
- 2025深圳的劳动合同模板
- 高中学业规划咨询服务合同范本
- 民间个人借款担保合同范本
- 材料采购合同样本
- ppp项目合同标准文本6
- 新入职员工设备培训
- 2024年中国林蛙油市场调查研究报告
- PANTONE潘通色卡TPX颜色在线查询(1-2部分)
- 2021《超星尔雅》舞蹈鉴赏章节测试答案
- 精益生产知识学习考试复习题库300题(含答案)
- 第三单元第1课 标志设计 课件 2024-2025学年人教版(2024)初中美术七年级上册
- 赛力斯招聘在线测评题
- 学做麦糊烧课件
- 内蒙古师范大学定向协议书
- T-CTSS 86-2024 原味茶饮料标准
- 13.福建-现场说课教学设计-金属的性质-黄毓
评论
0/150
提交评论