[發明專利]在操作系統中替換系統函數功能的方法有效
| 申請號: | 01103499.8 | 申請日: | 2001-02-15 |
| 公開(公告)號: | CN1369825A | 公開(公告)日: | 2002-09-18 |
| 發明(設計)人: | 陳樹青;陳玄同;林光信 | 申請(專利權)人: | 英業達股份有限公司 |
| 主分類號: | G06F17/15 | 分類號: | G06F17/15 |
| 代理公司: | 北京市柳沈律師事務所 | 代理人: | 呂曉章 |
| 地址: | 臺灣省*** | 國省代碼: | 臺灣;71 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 操作系統 替換 系統 函數 功能 方法 | ||
本發明涉及一種操作系統的系統函數的替換方法,特別是指可在操作系統中,對不同數據格式系統函數進行替換的方法。
隨著科技的發展,人類和電腦的聯系也越來越密切,也由于科技每天都以驚人的速度在進步,電腦對人們所提供的服務也越來越多樣化。為了提供更多、更強大的功能予使用者,電腦操作系統的本身所提供的系統函數除了日益增多之外,系統函數所能處理的數據量也跟著增加。一個最明顯的例子即是當操作系統由16位(比特)進步到32位時,系統函數所處理的數據也由16位提升至32位。
然而對于適用于舊版操作系統的應用程序而言,數據格式的變更反而會造成錯誤的執行結果,因此大多數的操作系統均會為了與先前版本兼容的原因(Backward?compatible),可能在調用系統函數時,在數據格式轉換之后,再調用先前版本的系統函數。舉例而言,在微軟的英文版視窗95/98(MicrosoftWindows?95/98)中調用32位的TextOut以輸出文字時,由于可能需要調用16位的系統函數TextOutA或ExtTextOutA,因此操作系統將在檢測到上述的需求時,自動進行數據格式轉換與調用16位系統函數的操作。
另一方面,對于系統開發者來說,有時需依據特別的需求而替換系統函數,例如在英文版視窗95/98中顯示中文時,因為該操作系統并未包含顯示中文的系統函數,因此系統開發者可以對系統函數進行替換,以達到上述的需求。如果所替換的是32位系統函數,則只要直接在截取所要替換的系統函數后直接進行替換即可。然而在32位的英文版視窗95/98中調用16位系統函數的操作,雖然可由操作系統自動完成,但是若要在32位操作系統中進行16位系統函數的替換卻無法順利達到,因此對于系統開發者而言,仍或多或少形成一些困擾。
發明目的及概述:
本發明的主要目的在于公開一種可在32位操作系統中,替換16位系統函數的方法。
本發明的另一目的在于公開一種可在操作系統中,任意替換32位與16位系統函數的方法。
本發明的次一目的在于公開一種得以同時截取不同數據格式的系統函數,且可同時對所截取的系統函數進行替換的方法。
根據以上所述目的,本發明提供一種可在操作系統中替換系統函數功能的方法。在設定所需替換的系統函數的后,若其是32位系統函數,且需替換16位的系統函數時,首先將32位系統函數的代碼推往存儲器高端,并在獲得32位系統函數的地址后,將自定義的系統函數進行替換的操作。當需調用16位的系統函數時,可在數據格式轉換之后執行自定義的16位系統函數,并在執行完畢后恢復所截取32系統函數的地址。
在16位系統函數的替換方面,在取得16位系統函數的地址后,隨后以自定義的16位系統函數進行取代,接著進行數據格式的轉換,以符合32位系統函數的需求。接下來,當需調用32位系統函數時,將32位系統函數的代碼推往存儲器高端,接著跳過C運程時刻庫,隨后執行自定義的32位系統函數,并在執行完畢后恢復所截取16系統函數的地址。
附圖簡要說明:
本發明的優選實施例將在以下的說明文字中參照下列附圖做更詳細的闡述:
圖1為一流程圖,其描繪本發明優選實施例中,用以截取系統函數并進行替換的總體流程圖;
圖2描繪在圖1中截取32位系統函數,并替換其所調用的16位系統函數的操作流程圖;及
圖3描繪在圖1中截取16位系統函數,并替換其所調用的32位系統函數的操作流程圖。
發明詳細說明:
本發明的關鍵在于提供了一個模板和程序代碼框架,只要做適當的填充既可完成一般情況下難以完成的32為和16位混編程序截取和替換系統API,
請參閱圖1,其描繪本發明優選實施例中,用以截取系統函數并進行替換的總體流程圖,其是以視窗95/98操作系統為基礎作描述。首先需設定所要截取的系統函數名稱(步驟102),隨后判斷該系統函數是32位或16位(步驟104)。當系統函數是32位函數時,接著將判斷其是否需調用16位的系統函數(步驟106)。若不需調用16位的系統函數,則以自定義的32位系統函數來替代所截取的32位系統函數(步驟108),否則將經由標號A至圖2的流程進行更進一步的處理。另一方面,當所要截取的系統函數是16位函數時,接著將判斷其是否需調用32位的系統函數(步驟110)。若不需調用32位的系統函數,則以自定義的16位系統函數來替代所截取的16位系統函數(步驟112),否則將經由標號B至圖3的流程進行更進一步的處理。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于英業達股份有限公司,未經英業達股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/01103499.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種理療坎肩
- 下一篇:蘆薈速凍包子及其制造方法





