[发明专利]一种动态链接库装载和链接的方法、装置有效
申请号: | 201210082799.4 | 申请日: | 2012-03-26 |
公开(公告)号: | CN103365668B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 李佳;陆见微;郭琦;黄少华 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京中博世达专利商标代理有限公司11274 | 代理人: | 申健 |
地址: | 100085 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 链接 装载 方法 装置 | ||
技术领域
本发明涉及动态链接库技术领域,尤其涉及一种不同代码指令集类型的处理器下的动态链接库装载和链接的方法和装置。
背景技术
动态链接库为可执行的一组代码,用于完成应用程序中的某些数据的计算处理。如在创建应用程序时,不需要从头开始创建程序,而是可以调用动态链接库实现该应用程序的某些计算处理工作。但是该动态链接库中的文件必须与应用程序的指令集相同,这样在调用动态链接库时,该计算机系统是可以执行该应用程序调用的动态链接库。
随着计算机技术的迅猛发展,计算机系统使用的处理器和操作系统也纷繁复杂。这样对于采用同一操作系统、不同指令集架构处理器的计算机系统之间,即使是具有相同功能的动态链接库文件也无法共享。
发明内容
本发明的实施例提供一种动态链接库装载和链接的方法和装置,能够使得采用同一操作系统、不同指令集架构处理器的设备之间共享相同功能的动态链接库。
为达到上述目的,本发明的实施例采用如下技术方案:
一种动态链接库装载和链接的方法,包括:
在装载完应用程序后,将所述应用程序需要调用的动态链接库装载到内存;
处理器单元响应所述应用程序调用所述动态链接库的指令,若所述动态链接库的第一代码指令集类型与处理器单元的第二代码指令集类型不属于同一指令集类型,启动模拟处理器单元运行所述第一代码指令集类型的动态链接库获取执行结果,所述执行结果的代码类型为所述第二代码指令集类型。
一种动态链接库装载和链接的装置,包括处理器单元和模拟处理器单元,所述处理器单元,用于在装载完应用程序后,将所述应用程序需要调用的动态链接库装载到内存;
所述处理器单元,还用于响应所述应用程序调用所述动态链接库的指令,若所述动态链接库的第一代码指令集类型与处理器单元的第二代码指令集类型不属于同一指令集类型,启动模拟处理器单元运行所述第一代码指令集类型的动态链接库获取执行结果;
所述模拟处理器单元,用于响应所述处理器单元的启动指令,运行所述第一代码指令集类型的动态链接库获取执行结果,所述执行结果的代码类型为所述第二代码指令集类型。
本发明实施例提供了一种动态链接库的装载和链接的方法和装置,在装载完应用程序后,将所述应用程序需要调用的动态链接库装载到内存,处理器单元响应所述应用程序调用所述动态链接库的指令,首先判断所述动态链接库的第一代码指令集类型与处理器单元的第二代码指令集类型是否属于同一指令集类型,若所述动态链接库的代码指令集类型与处理器单元的代码指令集类型不属于同一指令集类型,处理器单元启动模拟处理器单元运行所述第一代码指令集类型的动态链接库获取执行结果,所述执行结果的代码类型为所述第二代码指令集类型。这样,通过采用模拟处理器单元执行第一代码指令集类型的动态链接库,从而使得采用同一操作系统、不同指令集架构处理器单元的设备之间可以共享相同功能的动态链接库。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种动态链接库装载和链接的方法流程图;
图2为本发明实施例二提供的另一种动态链接库装载和链接的方法流程图;
图3为本发明实施例三提供的一种动态链接库装载和链接的装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一、
本发明实施例提供了一种动态链接库装载和链接的方法,如图1所示,包括:
S101、在装载完应用程序后,将所述应用程序需要调用的动态链接库装载到内存。
所述动态链接库是编译产生的可执行代码文件,包括了至少一个函数,例如动态链接库aa.dll中包含了sum(x,y)、max(x,y,z),sin(x)三个函数,分别用于计算x,y之和,x,y和z三个数的最大值,x的正弦函数值,这三个函数可以被用于应用程序的不同功能模块中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210082799.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高压线路高空施工吊物装置
- 下一篇:起重机起升限位装置