Windows中断编程

一、前 言

Windows提供强大的功能以及友好的图形用户界面(GUI),使得它不仅广泛的用作管理事务型工作的支持平台,也被工业领域的工程人员所关注。

但Windows3.1并非基于优先级来调度任务,无法立即响应外部事件中断,也就不能满足工业应用环境中实时事件处理和实时控制应用的要求。因此,如何在Windows环境中处理外部实时事件一直是技术人员尤其是实时领域工程人员所关注的问题。目前已有的方法大都采用内挂实时多任务内核的方式,如windows的实时控制软件包FLX等,而iRMX实时操作系统则把Windows3.1当作它的一个任务来运行。对于大型的工程项目,开发人员可采用购买实时软件然后集成方式。对中小项目,从投资上考虑就不很经济。如何寻找一种简明的方法来处理外部实时事件依然显得很必要。

本文首先阐述windows的消息机制及中断机制,然后结合DPMI接口,给出一种保护模式下中断程序的设计方法,以处理外部实时事件。经实际运行结果表明,该方法具有简洁、实用、可靠的特点,并同样可运行于Win95。

二、Windows的消息机制

Windows是一消息驱动式系统,。 Windows消息提供了应用程序与应用程序之间、应用程序与Windows系统之间进行通讯的于段。应用程序要实现的功能由消息来触发,并靠对消息的响应和处理来完成。

Windows系统中有两种消息队列,一种是系统消息队列,另一种是应用程序消息队列。计算机的所有输入设备由 Windows监控,当一个事件发生时,windows先将输入的消息放入系统消息队列中,然后再将输入的消息拷贝到相应的应用程序队列中”应用程序中的消息循环从它的消息队列中检索每一个消息并发送给相应的窗口函数中。一个事件的发生,到达处理它的窗口函数必须经历上述过程。值得注意的是消息的非抢先性,即不论事件的急与缓,总是按到达的先后排队(一些系统消息除外),这就使得一些外部实时事件可能得不到及时的处理。

时间: 2024-10-03 05:16:36

Windows中断编程的相关文章

018_《Delphi下深入Windows核心编程》

<Delphi下深入Windows核心编程> Delphi 教程 系列书籍 (018) <Delphi下深入Windows核心编程> 网友(邦)整理 EMail: shuaihj@163.com 下载地址: Part1 Part2 Part3     书名: Delphi下深入Windows核心编程 作者: 飞思科技产品研发中心 出版社: 电子工业出版社 书号: 7505384023 出版日期:2003年1月 开本: 787*1092 1/16 页码: 525 版次: 2003年1

[原创/讨论][windows核心编程一外传]关于访问虚拟地址0的方法。

接上一篇 Windows 核心编程研究系列之一(改变进程 PTE) 内容 上一篇观赏地址 :http://community.csdn.net/Expert/topic/5124/5124747.xml?temp=.2832453 当然系统保证不让访问地址0出于一种保护的目的,是防止未初始化的指针读取数据.我说的访问地址0只是出于一种纯实现的目的,也不提倡大家这样做.说白了只是好玩罢了. 大家都知道在 windows 中读取/写入地址0的指令肯定会出错: // 写 0 地址的内容xor edx,

类型转化-Windows 系统编程:cannot convert from &amp;amp;#39;LPTSTR []&amp;amp;#39; to &amp;amp;#39;LPCTSTR *&amp;amp;#39;

问题描述 Windows 系统编程:cannot convert from 'LPTSTR []' to 'LPCTSTR *' 小弟在学习系统编程(所用书籍Windows系统编程,第四版WIN7VS2010),在运行书上给的样板程序时出现了这个问题. int _tmain (int argc LPTSTR argv[]){...iFirstFile = Options (argc argv _T(""s"") &dashS NULL);...}其中:DWO

Windows界面编程(2) 半透明窗体

上一篇<Windows界面编程第一篇 位图背景与位图画刷>介绍了通过WM_CTLCOLORDLG消息来来设置对话框的背景以及位图画刷的使用.本篇将介绍动态调节窗体透明度的方法. 调节窗体透明度可以先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用来SetLayeredWindowAttributes指定窗体的透明度.这样就可以在程序运行时动态的调节窗体的透明度了. 下面先介绍下SetWindowLong和SetLayeredWindowAttributes函数.

Windows界面编程(1) 位图背景与位图画刷

可以通过WM_CTLCOLORDLG消息来设置对话框的背景,MSDN上对这个消息的说明如下: The WM_CTLCOLORDLG message is sent to a dialog box before the system draws the dialog box. By responding to this message, the dialog box can set its text and background colors using the specified display

使用C++的托管扩展针对Windows窗体编程

摘要:本文讨论了如何使用 Visual C++ .NET 的托管扩展针对 Windows 窗体编程,并提供了使用直接访问 Windows 窗体类的手动编程技术的示例,以及使用 Windows 窗体设计器的示例.此外,本文还对 Windows 窗体和 Microsoft 基础类 (MFC) 应用程序进行了比较. 简介 长期以来,程序员们都使用 C 和 C++ 来开发 Windows GUI 应用程序.对于我们当中很多人来说,这一段历史可以追溯到 Windows 2.0 时期,那时,我们使用基于 C

请教windows核心编程 ErrorShow程序例子问题

问题描述 请教windows核心编程 ErrorShow程序例子问题 刚刚学习win32 有个问题TCHAR buffer[100]; case WM_PAINT:{ hdc = BeginPaint (hwnd &ps) ; DWORD systemLocale = MAKELANGID(LANG_NEUTRAL SUBLANG_NEUTRAL); DWORD dwError = 1; HLOCAL hlocal = NULL; BOOL fOk = FormatMessage( FORMAT

小白问一下关于c++的windows界面编程的问题

问题描述 小白问一下关于c++的windows界面编程的问题 本人刚刚开始自学windows界面编程,用的编译器是vs2012.问了同学决定从winform入手,但是刚开始就被这些头文件啊源文件啊什么的给搞晕了.本来打算今晚写出来一个程序,但是一直在纠结这个参数传递,下面先上代码,非常简单的一个程序. 解决方案 你用winforms就要按照winforms的来,首先,不同于你在学校学的那个C++,winforms有自己的程序入口,无需再写main函数. 你新建了一个窗口,直接放上去按钮.文本框(

windows编程-初学Windows界面编程看什么书合适?

问题描述 初学Windows界面编程看什么书合适? 初学Windows界面编程看什么书合适?主要想做界面,和按键消息处理方面的编程,谢谢大神们! 解决方案 java GUI应用程序设计或者java+eclipse的书籍,要看你用什么语言 解决方案二: java GUI应用程序设计或者java+eclipse的书籍,要看你用什么语言 解决方案三: 你想走哪方面?有很多种,C# .NET WPF目前貌似比较火.qt也可以考虑,是跨平台的.还有就是MFC,现在在走下坡路,再就是win32,比较底层,后