[发明专利]在操作系统中替换系统函数功能的方法有效
申请号: | 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.vipzhuanli.com/pat/books/01103499.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种理疗坎肩
- 下一篇:芦荟速冻包子及其制造方法