欧美一区二区三区四区五区,人人看人人艹,亚洲一区二区中文,99精品视频99,亚洲精品欧美综合四区,国产三区视频在线观看,日韩在线观看一区二区,久久精品色
主辦單位:全國創(chuàng)爭活動指導(dǎo)協(xié)調(diào)小組 中華職工學(xué)習(xí)網(wǎng)首頁 情景站 聯(lián)系電話:010-68232149
科學(xué)研究人員 | 工程技術(shù)人員 | 購銷人員 | 倉儲人員 | 運(yùn)輸服務(wù)人員 | 體育工作人員 | 教學(xué)人員 | 購銷人員

中文全文信息檢索系統(tǒng)中索引項(xiàng)技術(shù)及分詞系統(tǒng)的實(shí)現(xiàn)

http://m.dcyhziu.cn  2007/6/5 源自:中華職工學(xué)習(xí)網(wǎng) 【字體: 字體顏色
一、前 言
  計(jì)算機(jī)的日益普及和計(jì)算機(jī)技術(shù)日益成熟,使得計(jì)算機(jī)在工業(yè)控制監(jiān)測中的應(yīng)用漸漸深入。但工業(yè)應(yīng)用不同于其它方面,它要求有較強(qiáng)的實(shí)時(shí)性。現(xiàn)在有很多的DOS軟件在運(yùn)行過程中通過掛接外部中斷方式實(shí)現(xiàn)DOS應(yīng)用軟件與外設(shè)的實(shí)時(shí)通信,這種方法實(shí)現(xiàn)起來十分簡單。而在Windows中應(yīng)用程序能否也能夠利用外部硬中斷實(shí)現(xiàn)外設(shè)與Windows應(yīng)用程序的實(shí)時(shí)通信呢?答案是肯定的。這里的關(guān)鍵是要解決好中斷代碼與Windows應(yīng)用程序相互之間交換信息的問題。
  從外設(shè)發(fā)送異步的硬中斷,通過中斷處理程序傳遞一條信息給Windows應(yīng)用程序。這時(shí)可以初始化相關(guān)端口,準(zhǔn)備好數(shù)據(jù),然后進(jìn)行數(shù)據(jù)傳送,從而做到實(shí)時(shí)通信。
  實(shí)現(xiàn)Windows應(yīng)用程序響應(yīng)外部中斷的方法有很多,如Microsoft公司自己開發(fā)的SDK、DDK軟件包,使用嵌入式匯編等等。本文將介紹一種在BC++3.1的基礎(chǔ)上利用Windows 3.1擁有的一些功能實(shí)現(xiàn)Windows實(shí)時(shí)通信的實(shí)例。
  
  二、中斷代碼的位置
  在Windows中,幾乎所有的異步事件都是由中斷處理程序來管理的。中斷處理程序包含在設(shè)備驅(qū)動程序中,由Windows在環(huán)境初始化中安裝。例如,KEYBOARD.DRV、MOUSE.DRV和COMM.DRV均含有中斷處理程序,以處理相應(yīng)的鍵盤、鼠標(biāo)和串行口的異步中斷。可以仿照標(biāo)準(zhǔn)設(shè)備驅(qū)動程序,編寫中斷處理代碼,以響應(yīng)外設(shè)的通信請求,從而完成一次實(shí)時(shí)通信。
  中斷代碼既可以包含在應(yīng)用程序的可執(zhí)行代碼中,也可以包含在動態(tài)連接庫(DLL)中。包含在應(yīng)用程序中的代碼只能在一個(gè)程序中使用,而在動態(tài)連接庫中的代碼則可以在Windows系統(tǒng)中所有的應(yīng)用程序所共享。這樣不僅在整個(gè)Windows系統(tǒng)中只有一個(gè)中斷代碼的副本,提高了內(nèi)存的使用效率,更重要的是可以防止由于同時(shí)存在多個(gè)中斷代碼的副本而發(fā)生沖突。本文將在DLL中編制中斷處理程序。
  當(dāng)動態(tài)連接庫被裝入時(shí),要調(diào)用DLL庫的入口點(diǎn)LibMain(),利用這一點(diǎn)可以執(zhí)行一些初始化工作,可以分配一些內(nèi)存塊,可以初始化一些全局變量或者靜態(tài)變量,可以安裝中斷服務(wù)程序的代碼等等。例如:
  void interrupt (oldIsr)(--CPPARGS)
  /* 舊的中斷服務(wù)程序地址 */
  LibMain(HANDLE hInstance,WORD wDataSeg,WORD cbHeapSize,L
  PSTR
  lpszCmdLine)
  {
  …
  oldIsr=getvect(IRQNum);
  /* IRQNum指中斷號 */
  setvect(IRQNum,newIsr);
  /* newIsr指新中斷服務(wù)程序代碼 */
  return(1);
  }
  函數(shù)setvect()既可在實(shí)模式下,也可在保護(hù)模式下設(shè)置中斷處理向量。
  上述代碼也可以放在一個(gè)由用戶設(shè)置的引出(export)函數(shù)中,在應(yīng)用程序中用戶可以調(diào)用此引出函數(shù)來安裝中斷服務(wù)程序代碼。
  由于中斷可以在任何時(shí)刻發(fā)生,中斷代碼必須駐留在內(nèi)存中,并且在應(yīng)用程序運(yùn)行的過程中一直處于某一固定內(nèi)存中。這一點(diǎn)無論是在實(shí)模式還是在保護(hù)模式下都是一致的。
  在DLL的模塊定義文件中應(yīng)注意:
  
  1.CODE語句為固定代碼段,即FIXED;
  
  2.EXPORTS語句要引出被應(yīng)用程序和其它DLL用作入口點(diǎn)的函數(shù)。
  三、通信機(jī)制
  編寫實(shí)時(shí)通信例程關(guān)鍵在于必須認(rèn)識到,異步事件對應(yīng)用程序的觸發(fā)是異步發(fā)生的,不在Windows的消息處理機(jī)制和多任務(wù)范圍內(nèi)。為了使通信例程能夠正確地工作,通信例程必須通知Windows有異步事件發(fā)生,且不能打斷應(yīng)用程序的任務(wù)管理或消息流。要作到這一點(diǎn),通信例程必須通過調(diào)用PostMessage或PostAppMessage函數(shù)向應(yīng)用程序的消息隊(duì)列中加入一條消息。
  需要注意的是,在DLL中調(diào)用PostMessage(HWND hwnd, …)時(shí),必須先確定hwnd的實(shí)際值,可以通過使用引出函數(shù)的辦法來實(shí)現(xiàn),如下所示:
  static HWND hWndApp;
  void FAR PASCAL SetIsrWin(HWND hwnd)
  {
  hWndApp=hwnd;
  }
  然后在應(yīng)用程序的窗口函數(shù)中,對WM-CREATE消息進(jìn)行處理時(shí)調(diào)用此函數(shù)來初始化DLL中的靜態(tài)變量hWndApp:
  CASE WM-CREATE:
  …
  SetIsrWin(hwnd); /* hwnd指應(yīng)用程序窗口句柄 */
  定義一個(gè)在應(yīng)用程序中使用的消息:
  #define ISRM-RUPT WM-USER+255最后在DLL中的中斷服務(wù)程序代碼中,調(diào)用PostMessage即可完成Windows應(yīng)用程序和中斷服務(wù)程序代碼相互的信息交流:
  void interrupt newIsr(--CPPARGS)
  {
  …
  PostMessage(hWndApp,WM-RUPT,wParam,lParam);
  …
  }
  
  四、程序?qū)嵗?BR>  本示例先安裝在DLL中的外中斷服務(wù)代碼,通過386/AT總線上的中斷申請線(IRQ12)外觸發(fā),由中斷服務(wù)代碼發(fā)送一條消息WM-RUPT通知Windows應(yīng)用程序外設(shè)有實(shí)時(shí)通信請求,應(yīng)用程序收到這條消息后,在窗口用戶區(qū)顯示一條信息,表明已和外設(shè)聯(lián)絡(luò)上,并同時(shí)鳴叫一聲喇叭。
  程序分為兩部分:DLL庫代碼和Windows應(yīng)用程序代碼。
  
  1.DLL庫代碼
  /*----------*
  * interrupt include file,named handle.h*
  *----------*/
  void FAR PASCAL SetIsrWin(HWND hwnd);
  void FAR PASCAL SetIRQNum(unsigned char IRQ);
  /*----------*
  * module defination file, named handle.def *
  *----------*/
  LIBRARY HANDLE
  EXETYPES WINDOWS
  STUB 'WINSTUB.EXE'
  CODE PRELOAD FIXED
  DATA PRELOAD SINGLE
  HEAPSIZE 1024
  EXPORTS
  WEP
  @1 RESIDENTNAME
  SetIRQNum @3
  /*----------*
  * interrupt service program in dll,named handle.dll *
  相關(guān)鏈接
  相關(guān)評論
主站蜘蛛池模板: 精品久久综合1区2区3区激情 | 国产一级一区二区三区| 国产精品偷伦一区二区| 国产精品一区二区在线观看免费 | 热久久国产| 躁躁躁日日躁网站| 国产精品美女久久久免费| 欧美乱码精品一区二区三| 精品videossexfreeohdbbw| 午夜电影毛片| 在线国产精品一区二区| 精品国产区一区二| 日韩精品中文字幕一区二区三区| 亚洲高清国产精品| 午夜免费网址| 99爱精品视频| 色噜噜狠狠色综合久| 日韩av在线高清| 国产精品自拍不卡| 黄色av免费| 国产精品久久久久久久久久久新郎 | 中文字幕一级二级三级| 日本一区二区三区四区高清视频| 中文字幕1区2区3区| 精品国产乱码久久久久久虫虫 | 久久影院一区二区| 亚洲乱亚洲乱妇50p| 欧美一区二区精品久久911| 日韩av电影手机在线观看| 国产精品高潮呻吟三区四区| 国产区二区| 国产一区二区三区黄| 精品久久综合1区2区3区激情| 国产精品视频久久久久久久 | 久久精品手机视频| **毛片在线| 欧洲精品一区二区三区久久| 羞羞免费视频网站| 亚洲国产精品一区在线| 99久久精品一区二区| 三上悠亚亚洲精品一区二区| 欧美精品日韩精品| 日本白嫩的18sex少妇hd| 亚洲欧美一区二| 国产1区2区3区| 黄色av免费| 国产欧美日韩精品一区二区图片 | 欧美日韩亚洲三区| 日韩精品中文字幕一区二区| 日本三级韩国三级国产三级| 国产日产欧美一区二区| 视频二区狠狠色视频| 国产激情二区| 99三级视频| 欧美日韩九区| 欧美精品在线视频观看| 美女直播一区二区三区| 精品久久不卡| 国产一区影院| 国产婷婷一区二区三区久久| 四季av中文字幕一区| 国产精品精品国内自产拍下载| 国内精品99| 狠狠插狠狠干| 欧美性猛交xxxxxⅹxx88| 97久久精品一区二区三区观看| 国产精品亚发布| 欧美在线视频精品| 国产精品69av| 国产日韩欧美综合在线| 国产极品一区二区三区| 欧美精品日韩精品| 日韩中文字幕在线一区二区| 国内少妇偷人精品视频免费| 欧美日韩一区二区高清| 97人人澡人人爽91综合色| 91日韩一区二区三区| 欧美一区二区三区在线视频播放| 亚洲**毛茸茸| 国内少妇自拍视频一区| 国产精品v欧美精品v日韩| 欧美大成色www永久网站婷|