功能函数的加载方法、装置、可读存储介质及电子设备制造方法及图纸

技术编号:24330681 阅读:87 留言:0更新日期:2020-05-29 19:30
本发明专利技术提供了一种功能函数的加载方法,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:所述程序模块通过对外接口收到宿主程序的指令时,加载一子模块;所述宿主程序的指令是宿主程序要加载至少一功能函数时或一子模块发出;由该子模块创建一模块对象,将所要加载的功能函数,或所要加载的子模块对应的各功能函数注册到该模块对象中提供给宿主程序。还相应的提供了功能函数的加载装置、可读存储介质及电子设备。使用本发明专利技术,可以在功能函数的动态加载时降低对操作系统的依赖。

Loading method, device, readable storage medium and electronic equipment of function function

【技术实现步骤摘要】
功能函数的加载方法、装置、可读存储介质及电子设备
本专利技术涉及一种功能函数的加载方法、装置、可读存储介质及电子设备。
技术介绍
函数库由可被重复使用的各功能函数(简称函数)构成,每个函数由自定义的变量与执行函数构成,通过链接一函数以执行该函数代码以完成该函数提供的功能。函数库可以分为静态链接库(SLL,StaticLinkLibrary)和动态链接库(DLL,DynamicLinkLibrary)。静态链接库通常在应用程序编译时期完成调用函数链接,使所链接的库函数代码集成到编译生成的应用程序的可执行文件(如exe文件)中。这使得当有多个应用程序都使用一相同的库函数时,内存中就会存在这个库函数代码的多个拷贝,会占用较多的内存资源。而动态链接库的库函数代码并没有被拷贝到应用程序的可执行文件中去,仅当应用程序被装入内存运行时,在操作系统(如MicrosoftWindows)的管理下,通过调用操作系统的动态连接器去加载DLL,以加载相应库函数(库函数的可执行代码位于一DLL文件中),执行该DLL中库函数的功能,包括重定位。可见,相对于动态链接库来说,当有多个应用程序都使用一相同的库函数时,内存中只存在一个库函数代码,会节省较多的内存资源,因此目前多采用基于动态链接库的方式来实现对库函数的调用。例如,对于不同的软件去访问硬件时,各个软件执行时通过加载该硬件的驱动DLL来实现,而并不需要每个程序中预先写入该硬件的驱动代码。由上,操作系统可以通过其动态链接器对驱动DLL的调用,来实现对硬件的对于驱动的调用但目前,基于动态链接库的方式由于需要在操作系统的管理下(通过操作系统的动态连接器)去加载DLL,使得其对操作系统的依赖性比较强,需操作系统提供动态连接器。由于其加载依赖于OS动态链接器,因此功能函数代码的可移植性被限制。如何能够提供一种降低对操作系统依赖的功能函数的动态加载方法,是有待解决的技术问题。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供了一种功能函数的加载方法、装置、可读存储介质及电子设备,以在对功能函数动态加载时降低对操作系统的依赖。本专利技术提供的一种功能函数的加载方法,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:所述程序模块通过对外接口收到宿主程序的指令时,加载一子模块;所述宿主程序的指令是宿主程序要加载至少一功能函数时发出;由该子模块创建一模块对象,将所要加载的功能函数注册到该模块对象中提供给宿主程序。由上,通过上述步骤,实现了宿主程序对所需功能函数的动态加载。并且,由于功能函数是在程序模块内被加载到子模块的模块对象后(这个加载过程由程序模块完成,与操作系统动态链接器无关)提供给宿主程序,该所需功能函数的加载过程不依赖与操作系统平台,相对于
技术介绍
降低了对操作系统动态链接器的依赖,因此与操作系统的耦合性更松散,进而减少了操作系统平台代码的依赖,增强了程序模块的代码可移植性,从而更易实现接口的ABI技术。并且,由于各功能函数的注册相对在程序模块内部完成,因此,即使出现其他程序模块中的功能函数名称定义相同,宿主程序在调用过程中也不会出现调用出错问题。本专利技术提供的另一种功能函数的加载方法,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:所述程序模块通过对外接口收到宿主程序的指令时,加载该指令对应的一子模块;所述宿主程序的指令是宿主程序要加载一子模块时发出;由该子模块创建一模块对象,将该子模块对应的各功能函数注册到该模块对象中提供给宿主程序。由上,通过上述步骤,实现了宿主程序对所需子模块对应的功能函数的动态加载。并且,由于功能函数是在程序模块内被加载到子模块的模块对象后(这个加载过程由程序模块完成,与操作系统动态链接器无关)提供给宿主程序,该子模块对应的功能函数的加载过程不依赖与操作系统平台,相对于
技术介绍
降低了对操作系统动态链接器的依赖,因此与操作系统的耦合性更松散,进而减少了操作系统平台代码的依赖,增强了程序模块的代码可移植性,从而更易实现接口的ABI技术。并且,由于各功能函数的注册相对在程序模块内部完成,因此,即使出现其他程序模块中的功能函数名称定义相同,宿主程序在调用过程中也不会出现调用出错问题。可选的,所述程序模块还包括一子模块注册表,用于记录该程序模块所具有的子模块;相应的所述加载方法还包括:在所述加载一子模块前,判断子模块注册表中是否记载有所要加载的子模块,据此继续或退出所述加载方法。可选的,所述程序模块为两个以上,不同的程序模块包括不同的功能函数;所述收到宿主程序的指令的程序模块,是被判断具有所要加载的功能函数的程序模块。由上,通过子模块注册表可以获知该通信程序模块所具有的通信协议及对应的子协议模块信息,便于判断程序模块是否具有所要加载的功能函数或模块。可选的,还包括:宿主程序建立对应所加载的各功能函数的功能函数代理表。本专利技术提供的一种功能函数的加载装置,包括:程序模块,其包括:至少一子模块和至少一功能函数;子模块加载单元,用于所述程序模块通过对外接口收到宿主程序的指令时,加载一子模块;所述宿主程序的指令是宿主程序要加载至少一功能函数时发出;模块对象创建单元,用于由所述子模块创建一模块对象;功能函数注册单元,用于将所要加载的功能函数注册到所述模块对象中提供给宿主程序。本专利技术提供的另一种功能函数的加载装置,包括:程序模块,其包括:至少一子模块和至少一功能函数;子模块加载单元,用于所述程序模块通过对外接口收到宿主程序的指令时,加载该指令对应的一子模块;所述宿主程序的指令是宿主程序要加载一子模块时发出;模块对象创建单元,用于由所述子模块创建一模块对象;功能函数注册单元,用于将该子模块对应的各功能函数注册到所述模块对象中提供给宿主程序。可选的,所述程序模块还包括一子模块注册表,用于记录该程序模块所具有的子模块;所述加载装置还包括一判断模块,用于在加载一子模块前,判断子模块注册表中是否记载有所要加载的子模块,据此继续或退出所述加载方法。本专利技术提供的一种可读存储介质,所述可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一所述的方法。本专利技术提供的一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一所述的功能函数的加载方法。附图说明图1为功能函数的加载方法的原理图;图2为功能函数的加载方法的流程图。具体实施方式为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。本专利技术功能函数加载方法参见图1所示功能函数的加载方法的原理图,简述如下:由程序模块提供各子模块、各功能函数,各子模块可以动态加载所需的功能函数,当宿主程序(Host,即软件运行环境)需要加载某个或本文档来自技高网
...

【技术保护点】
1.一种功能函数的加载方法,其特征在于,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:/n所述程序模块通过对外接口收到宿主程序的指令时,加载一子模块;所述宿主程序的指令是宿主程序要加载至少一功能函数时发出;/n由该子模块创建一模块对象,将所要加载的功能函数注册到该模块对象中提供给宿主程序。/n

【技术特征摘要】
1.一种功能函数的加载方法,其特征在于,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:
所述程序模块通过对外接口收到宿主程序的指令时,加载一子模块;所述宿主程序的指令是宿主程序要加载至少一功能函数时发出;
由该子模块创建一模块对象,将所要加载的功能函数注册到该模块对象中提供给宿主程序。


2.一种功能函数的加载方法,其特征在于,包括程序模块,其包括:至少一子模块和至少一功能函数;所述加载方法包括:
所述程序模块通过对外接口收到宿主程序的指令时,加载该指令对应的一子模块;所述宿主程序的指令是宿主程序要加载一子模块时发出;
由该子模块创建一模块对象,将该子模块对应的各功能函数注册到该模块对象中提供给宿主程序。


3.根据权利要求2所述的方法,其特征在于,所述程序模块还包括一子模块注册表,用于记录该程序模块所具有的子模块;
相应的所述加载方法还包括:在所述加载一子模块前,判断子模块注册表中是否记载有所要加载的子模块,据此继续或退出所述加载方法。


4.根据权利要求1或2所述的方法,其特征在于,所述程序模块为两个以上,不同的程序模块包括不同的功能函数;
所述收到宿主程序的指令的程序模块,是被判断具有所要加载的功能函数的程序模块。


5.根据权利要求1或2所述的方法,其特征在于,还包括:宿主程序建立对应所加载的各功能函数的功能函数代理表。


6.一种功能函数的加载装置,其特征在于,包括:
程序模块,...

【专利技术属性】
技术研发人员:张聪颜合陆需飞
申请(专利权)人:北京东土科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1