


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
中文全文信息檢索系統中索引項技術及分詞系統的實現
摘要該文提出了一種在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均含有中斷處理程序,以處理相應的鍵盤、鼠標和串行口的異步中斷??梢苑抡諛藴试O備驅動程序,編寫中斷處理代碼,以響應外設的通信請求,從而完成一次實時通信。中斷代碼既可以包含在應用程序的可執行代碼中,也可以包含在動態連接庫(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試的可用性測試要領試題及答案
- 數據庫表設計基本要求試題及答案
- 計算機四級軟件測試實務案例匯編試題及答案
- 嵌入式操作系統的選擇與實踐試題及答案
- 在大型團隊中建立高效的文檔管理與查詢機制試題及答案
- 行政組織改革的回顧與前瞻試題及答案
- 大連小區靜默管理制度
- 娛樂會所營銷管理制度
- 小學設備使用管理制度
- 冰箱生熟分離管理制度
- 山東健康集團招聘考試真題2024
- 中國2型糖尿病運動治療指南(2024版)解讀 2
- 木材行業火災事故案例
- 公安機關對旅館業培訓
- 旱地劃龍舟課件
- 中醫院面試題及答案
- AI技術與可持續發展之間的關系及實踐
- 離婚協議兩個兒子正版(2025年版)
- 2025年廣東省出版集團數字出版有限公司招聘筆試參考題庫含答案解析
- 光伏施工安全措施方案
- 2024湖南衡陽縣城市和農村建設投資有限公司招聘專業技術人員2人筆試參考題庫附帶答案詳解
評論
0/150
提交評論