CN1310387A - 资源重复时的动态定位方法 - Google Patents

资源重复时的动态定位方法 Download PDF

Info

Publication number
CN1310387A
CN1310387A CN 00102377 CN00102377A CN1310387A CN 1310387 A CN1310387 A CN 1310387A CN 00102377 CN00102377 CN 00102377 CN 00102377 A CN00102377 A CN 00102377A CN 1310387 A CN1310387 A CN 1310387A
Authority
CN
China
Prior art keywords
resource
application software
module
dynamic
positioning method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 00102377
Other languages
English (en)
Other versions
CN1123827C (zh
Inventor
林光信
陈玄同
李鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inventec Corp
Original Assignee
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN 00102377 priority Critical patent/CN1123827C/zh
Publication of CN1310387A publication Critical patent/CN1310387A/zh
Application granted granted Critical
Publication of CN1123827C publication Critical patent/CN1123827C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

一种资源重复时的动态定位方法,其主要将系统中的资源重新定位,而在应用软件安装过程中或应用软件执行时,借由拦截模块,对所调用的资源进行拦截,再对其进行分析,如该资源与原本存在系统中的应用软件所用的资源未重覆时,则直接调用该资源,如有重复时,则借由重新定位模块对重复资源进行重新定位,而建立分别与该等重新定位的资源相对应的索引头,并使该应用软件及其它应用软件可透过索引头,调用与其配合的资源,进而能够正常运行。

Description

资源重复时的动态定位方法
本发明是一种资源重复时的动态定位方法,其主要是一种解决调用重名资源的应用软件之间发生冲突的矛盾,且无须修改应用软件的原始资源,且不受资源类型的限制,进而可保证资料稳定性的方法。
已知技术中,当用户在视窗作业系统中安装某个软件时,该安装软件在安装过程中,对于必需重复应用到已存在系统中的某个或某几个动态连结程序(DLL),皆会询问用户是否要覆盖已存在系统中同样某段程序地址的旧版本(Old Version),如用户选择是,则将旧版本完全覆盖,并将其中的内容更新为新版本的内容,然因新版本仍延用旧版本的某段程序地址,故,常会导致先前安装软件根本无法使用,从而影响系统中已经安装的其他应用软件,因为这些被应用软件所调用的动态连结程序(DLL)与被修改的动态连结程序(DLL)某段程序地址重复;如果用户选择否,则新安装的应用软件就不能正常使用,究其原因,是用户在视窗作业中安装了大量的应用软件时,对于各应用程序之间的有相同档案某段程序地址的动态连结程序(DLL),往往会互相覆盖,而仅存其中一个可运行的程序,例如:同时安装有Office和Visual Basic的用户来说,只能有一个软件能够正常运行,主要由于该等应用软件间所应用资源重复造成的,故,在现有技术中解决这种调用资源重名问题的方法有两种:
1.当两个应用软件间有某段程序地址重复的资源互相调用的现象发生时,在安装这两个应用软件时,即将它们之间重复某段程序地址动态连结程序(DLL)按照新老两个版本分别备份起来,当要运行A应用软件时,就调用A.DLL,当要运行B应用软件时,就将调用B.DLL,但如此的做法,其缺点是两个调用重名资源的应用软件不能同时正常使用,而且无论使用哪一个应用软件,都需要采用手动的方式,调用不同的动态连结程序(DLL),操作十分烦琐,且无法达到自动化。
2.当A和B两个应用软件冲突时,分析其可执行文件结构(PE格式),使其重新定位到一个资源,如图1所示,将A、B两个应用软件都调用的A.DLL,修改为一个是C.DLL,另一个仍然是A.DLL,即修改PE格式中的模块(Module)表,但是采用此种方法也只能是手动操作,无法达成自动化过程,且只能保证修改对象是可执行文件(即具有PE、NE、LE格式的文件),因此是为一种静态定位的方式,且其操作要修改原文件代码,并无法保证其他类型的资源的重新定位,从而无法保证程序的稳定性。
鉴于上述传统的应用软件在安装时所存在的一些缺陷,本发明提供一种资源重复时的动态定位方法。
本发明的一目的,在提供一种资源重复时的动态定位方法,其主要是借由建立相对应索引的方式,使某段程序地址重复的资源能够达到重新定位,以解决应用软件间调用某段程序地址相同的资源所发生冲突的矛盾,进而使该等应用软件可正常运行。
本发明的另一目的,在提供一种资源重复时的动态定位方法,其是一种无须修改应用软件的原始资料,且不受资源类型的限制,而能保证应用软件执行的稳定性的方法。
本发明提供的一种资源重复时的动态定位方法,该方法包含步骤:(1).当应用软件安装于系统中时,或在系统中的应用软件执行时,预先建立在电脑系统中的拦截模块,会同时启动,对该应用软件在安装或执行时,所需要调用的资源,进行拦截;(2).拦截模块会对所拦截到的资源进行分析判断,如所拦截到的资源的某段程序地址与已存在系统中的资源某段程序地址有重复时,则调用已建立在系统中的重新定位模块,对该重复资源进行重新定位;(3).将该某段程序地址重复的资源分别以不同某段程序地址储存于已建立于系统中的动态重名资料库中,并建立与该等已分别重新命名的资源相对应的索引头,使其变成可以被完全识别的复合资源;(4).令该应用软件透过索引头调用与其配合的资源,进而能够正常运行。
为使能对本发明作更进一步的认识与了解,结合实施例参考附图,进一步详细说明如下:
附图简要说明:
图1是已知方法的示意图;
图2是本发明实施时的方框示意图;
图3是本发明拦截模块的流程图;
图4是本发明重新定位模块的流程图;
图5是本发明的实施例示意图。
本发明是一种资源重复时的动态定位方法,请参照图2所示,其主要先在电脑系统中建立拦截模块,及重新定位模块后,令应用软件安装在系统中时,或在系统中的应用软件执行时201,在系统中的拦截模块202,即会同时启动,对该应用软件在安装或执行时,所需要调用的资源,于本实施例为动态连结程序(DLL,Dynamic Link Library),进行拦截,并对拦截到的资源进行分析判断,如该资源与系统中的其它应用软件所需的资源某段程序地址未重覆时,则直接调用该资源供该应用软件使用;如发现有该资源的某段程序地址与系统中的其它应用软件所需的资源某段程序地址有重复时,则调用在系统中的重新定位模块203,对该重复资源进行重新定位,将该某段程序地址重复的资源分别以不同某段程序地址储存于已建立于系统中的动态重名资料库中,并建立与该等已分别重新命名的资源相对应的索引头,使其变成可以被完全识别的复合资源,而使该应用软件以及其它应用软件可透过索引头调用与其配合的资源204,进而能够正常运行;反之,电脑系统亦可调用经重新定位的资源,与拦截模块所拦截到的资源加以比较判断,使在系统中的应用软件可透过与该等资源相连结的索引头,找到与其相配合的资源,进而调用该资源,如此可知,本发明是为一可双向操作的方法。
至于,有关上述的拦截模块及重新定位模块进行时的相关过程,进一步详细说明如下:
请参照图3所示,其中,电脑系统在对需要重新定位重名资源的应用软件,而启动本发明的拦截模块进行拦截301时,主要是先透过其中的挂钩函数值(Hook)的连结,而使拦截模块可直接进入该应用软件中后,进而控制该应用软件302后,再透过电脑系统中的中央处理单元,至预先建立于电脑系统的动态重名资料库中,调用储存其中已经重新定位模块重新定位完成的资源303,并经由电脑系统中的中央处理单元判断由该动态重名资料库中的资源,是否有该应用软件所需的资源304,如有,则寻找与该资源相对应的资源305,并加以调用;如找不到符合要求的资源,则电脑系统会令拦截模块退出该应用软件,并释放对该应用软件的控制权306,使该应用软件能够继续进行后续的操作。
另,请参照图4所示,当本发明的拦截模块找寻到相对应的资源时,本发明的重新定位模块会读取该资源并加以控制401,并判断该资源,是否已存在预先建立于电脑系统中的动态重名资料库中402,如果该动态重名资料库中并未有该资源存在,则该重新定位模块即会释放对资料的控制,使调用该资源的应用软件可在电脑系统配合下,调用所需的资源,继续进行后续的操作403。
反之,如果该资源已存在于动态重名资料库中,则判断其是否已有某段程序地址相同的资源404,如有,则读取与该资源相对应的索引头(IndexHead)的有关数据,找到所需的资源,从而对该资源进行定位的操作405,以及使调用该资源的应用软件的操作可顺利进行406;如不相同,则建立与该资源相对应的索引头407,并将该资源与索引头结合在一起形成一复合资源408(如图5所示)后,储存于动态重名资料库,然后借由索引头进行对与其相对应的资源的定位操作405,以及使调用该资源的应用软件的操作可顺利进行406。
为使能更进一步了解本发明,兹举一具体实施例,并说明如下:
首先,请参照图5所示,当在视窗作业系统中有两个不同应用软件(例如:VC6.0及VC5.0),在执行编译的过程中,经本发明拦截模块拦截后,得知该等两个应用软件会同时用到一个MFC42D.DLL资源时,本发明即会借由重新定位模块,将该重复用到的资源(MFC42D.DLL)分别命名为A5.DLL和A6.DLL,其中A5.DLL表示被VC5.0所调用的动态资源,而V6.DLL表示被VC6.0所调用的动态资源,当需要在VC5.0环境中编译程序时,则在如图5所示,由与A5.DLL相对应的索引头(Index Head)中读取A5.DLL,当需要在VC6.0环境下编译程序时,则在如图5所示,由与A6.DLL相对应的索引头(Index Head)中读取A6.DLL,这样就可以使调用相同某段程序地址DLL的两个应用程序可分别调用其所需的DLL。
综上所述,本发明的资源重复时的动态定位方法,不但可改进已用技术的各种缺点,且在使用上能增进功效,合于实用,充份符合发明专利的要件,实为一理想的发明,故申请人爰依专利法的规定,提出发明专利申请,并恳请早日赐准本案专利,至感德便。

Claims (7)

1.一种资源重复时的动态定位方法,其特征是该方法包含步骤:
(1).当应用软件安装于系统中时,或在系统中的应用软件执行时,预先建立在电脑系统中的拦截模块,会同时启动,对该应用软件在安装或执行时,所需要调用的资源,进行拦截;
(2).拦截模块会对所拦截到的资源进行分析判断,如所拦截到的资源的某段程序地址与已存在系统中的资源某段程序地址有重复时,则调用已建立在系统中的重新定位模块,对该重复资源进行重新定位;
(3).将该某段程序地址重复的资源分别以不同某段程序地址储存于已建立于系统中的动态重名资料库中,并建立与该等已分别重新命名的资源相对应的索引头,使其变成可以被完全识别的复合资源;
(4).令该应用软件透过索引头调用与其配合的资源,进而能够正常运行。
2.如权利要求1所述的资源重复时的动态定位方法,其特征是拦截模块会对所拦截到的资源进行分析判断,如该资源与系统中的其它应用软件所需的资源某段程序地址未重复时,则使直接调用该资源供该应用软件使用。
3.如权利要求1所述的资源重复时的动态定位方法,其特征是拦截模块进行拦截时,主要是先透过其中的挂钩函数值(Hook)的连结,而直接控制正在拦截的应用软件后,再透过中央处理单元至储存其中且经重新定位模块重新定位完成的资源找寻,并经由中央处理单元判断后,如为所需的资源,则调用与该资源相对应的模块。
4.如权利要求3所述的资源重复时的动态定位方法,其特征是拦截模块进行拦截时,如找不到符合要求的资源,则电脑系统会令拦截模块退出所控制的应用软件,并释放对该应用软件的控制权,使该应用软件能够继续进行后续的操作。
5.如权利要求1所述的资源重复时的动态定位方法,其特征是重新定位模块会对所控制的资源,加以判断其是否已存在预先建立于电脑系统中的动态重名资料库中,如果该资源已存在于动态重名资料库中,则进一步判断是否已有某段程序地址相同的资源,如相同,则读取与该资源相对应的索引头(Index Head)的有关数据,找到所需的资源,从而对该资源进行定位的操作,使调用该资源的应用软件的操作可顺利进行。
6.如权利要求5所述的资源重复时的动态定位方法,其特征是重新定位模块对所控制的资源,判断其是否已存在建立于电脑系统中的动态重名资料库中时,如该动态重名资料库中并未有该资源存在,则该重新定位模块即会释放对资源的控制,使调用该资源的应用软件可在电脑系统配合下,调用所需的资源,继续进行后续的操作。
7.如权利要求5所述的资源重复时的动态定位方法,其特征是重新定位模块,如在动态重名资料库中未得到有某段程序地址相同的资源,则会建立与该资源相对应的索引头,并将该资源与索引头结合在一起形成一复合资源,然后借由索引头进行对与其相对应的资源的定位操作,使调用该资源的应用软件的操作可顺利进行。
CN 00102377 2000-02-21 2000-02-21 资源重复时的动态定位方法 Expired - Fee Related CN1123827C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 00102377 CN1123827C (zh) 2000-02-21 2000-02-21 资源重复时的动态定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 00102377 CN1123827C (zh) 2000-02-21 2000-02-21 资源重复时的动态定位方法

Publications (2)

Publication Number Publication Date
CN1310387A true CN1310387A (zh) 2001-08-29
CN1123827C CN1123827C (zh) 2003-10-08

Family

ID=4576367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 00102377 Expired - Fee Related CN1123827C (zh) 2000-02-21 2000-02-21 资源重复时的动态定位方法

Country Status (1)

Country Link
CN (1) CN1123827C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331940A (zh) * 2011-06-24 2012-01-25 浙大网新科技股份有限公司 一种将应用程序装载到安卓手机上的方法及系统
WO2015127763A1 (zh) * 2014-02-26 2015-09-03 珠海市君天电子科技有限公司 管理无线网共享软件的方法和装置
CN105955782A (zh) * 2016-05-09 2016-09-21 北京奇虎科技有限公司 应用程序运行控制的方法及装置
CN107329808A (zh) * 2017-06-29 2017-11-07 联想(北京)有限公司 一种信息处理方法及装置
CN107526636A (zh) * 2016-10-26 2017-12-29 腾讯科技(深圳)有限公司 资源识别方法及装置
CN107832403A (zh) * 2017-11-02 2018-03-23 武汉斗鱼网络科技有限公司 目录文件管理方法、装置、电子终端及可读存储介质
CN113434210A (zh) * 2021-06-23 2021-09-24 深圳市酷开网络科技股份有限公司 一种插件加载控制方法、系统、终端设备及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331940A (zh) * 2011-06-24 2012-01-25 浙大网新科技股份有限公司 一种将应用程序装载到安卓手机上的方法及系统
WO2015127763A1 (zh) * 2014-02-26 2015-09-03 珠海市君天电子科技有限公司 管理无线网共享软件的方法和装置
CN105955782A (zh) * 2016-05-09 2016-09-21 北京奇虎科技有限公司 应用程序运行控制的方法及装置
CN105955782B (zh) * 2016-05-09 2020-02-07 北京奇虎科技有限公司 应用程序运行控制的方法及装置
CN107526636A (zh) * 2016-10-26 2017-12-29 腾讯科技(深圳)有限公司 资源识别方法及装置
CN107329808A (zh) * 2017-06-29 2017-11-07 联想(北京)有限公司 一种信息处理方法及装置
CN107329808B (zh) * 2017-06-29 2020-12-18 联想(北京)有限公司 一种信息处理方法及装置
CN107832403A (zh) * 2017-11-02 2018-03-23 武汉斗鱼网络科技有限公司 目录文件管理方法、装置、电子终端及可读存储介质
CN107832403B (zh) * 2017-11-02 2020-05-12 武汉斗鱼网络科技有限公司 目录文件管理方法、装置、电子终端及可读存储介质
CN113434210A (zh) * 2021-06-23 2021-09-24 深圳市酷开网络科技股份有限公司 一种插件加载控制方法、系统、终端设备及存储介质

Also Published As

Publication number Publication date
CN1123827C (zh) 2003-10-08

Similar Documents

Publication Publication Date Title
US6323865B1 (en) Automatic font management within an operating system environment
US8434099B2 (en) Efficient linking and loading for late binding and platform retargeting
US5905990A (en) File system viewpath mechanism
US7409694B2 (en) Highly componentized system architecture with loadable virtual memory manager
US5129086A (en) System and method for intercommunicating between applications and a database manager
US7565665B2 (en) Efficient linking and loading for late binding and platform retargeting
US7143421B2 (en) Highly componentized system architecture with a demand-loading namespace and programming model
CN100383745C (zh) 促进异构计算环境中的资源分配的方法和系统
US5875327A (en) Hierarchy of preferences and preference groups
CN1101029C (zh) 为系统对象模型建立动态角色的方法和装置
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
US20150012538A1 (en) Flexible namespace prioritization
EP0855056B1 (en) Object-oriented method maintenance mechanism that does not require cessation of the computer system
JPH03142557A (ja) マルチ・スレッド対応ディジタル・データ・プロセッサ用スレッド・プライベート・メモリ
JPH09171465A (ja) 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法
CA2145923A1 (en) Computer operating system providing means for formatting information in accordance with specified cultural preferences
JPH06266563A (ja) 複数同時オブジェクト・バージョンをサポートする効率的ルータ
CN1123827C (zh) 资源重复时的动态定位方法
US20090133042A1 (en) Efficient linking and loading for late binding and platform retargeting
US5487158A (en) Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
CN106445656A (zh) 一种实现线程本地存储的方法及装置
US20100115506A1 (en) Method and arrangement for software dependency resolution
CN100458606C (zh) 匹配用于控制工作过程的函数的方法和装置
US20080301719A1 (en) Mapping Of Dynamic Link Libraries In Computing Devices
US7159222B1 (en) Highly componentized system architecture with object mutation

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20031008

Termination date: 20110221