一种基于插件机制的动态库统一调度方法

文档序号:6383247阅读:394来源:国知局
专利名称:一种基于插件机制的动态库统一调度方法
技术领域
本发明涉及一种动态库调度方法,尤其是涉及一种基于插件机制的动态库统一调度方法。
背景技术
动态库又称动态链接库英文为DLL,是Dynamic Link Library的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。由于动态库与编程语言无关,得到的资源可以得到更广泛地应用。作为一种长远考虑,资源的重复利用不但没有使以往的劳动浪费,而且使原来的劳动增值,使工作更有效。尤其是资源的重复利用问题,如果系统地考虑软件复用则是解决软件开发中重复劳动问题的一种方案,动态库则是一种途径和方法。以已有的工作为基础,充分利用过去应用系统开发中积累的知识和经验,将开发的重点集中于应用的特有构成成分上,消除重复劳动,避免重新开发可能引入的错误,从而提高软件开发的效率和质量。目前,在实现动态度调用过程中,一般采用的方式为“谁调用,谁管理”,即动态库的使用者负责调用所需的动态库,并在使用完毕后主动释放此动态库。这种方式较为直观,操作简单。但随着软件系统的发展及软件开发过程中的模块化管理方式的普遍应用,现有的动态库加载方式就显现出了诸多缺点不利于管理,对多方调用同一动态库没有合理的管理机制;浪费资源,无法及时的释放动态库,造成资源的浪费;效率底,为了防止交叉调用的现象,每次调用完毕都需要释放动态库。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种管理高效、使用方便、提高用户开发效率的基于插件机制的动态库统一调度方法。本发明的目的可以通过以下技术方案来实现一种基于插件机制的动态库统一调度方法,其特征在于,包括动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。该方法具体包括以下步骤a)系统调用动态库管理模块,并将所需要的动态库信息传递给动态库管理模块;b)判断本地是否存在相对应的动态库,若为是,执行步骤C),若为否,执行步骤d);c)如果本地存在相应的动态库,则加载此动态库,并执行步骤f);d)如果本地不存在相应的动态库,则通过网络去下载此动态库,并执行步骤e);e)判断是否下载成功,若为是,返回步骤c);否则,返回动态库加载失败信息;f)获得所加载每一个动态库的句柄;g)根据需要获得某一个动态库的某一接口函数地址;h)使用完毕后,释放所有加载的动态库。与现有技术相比,本发明具有管理高效、使用方便的优点,对动态库采用了统一的加载于管理方式,使用户在使用动态库的时候不需要关心加载与释放过程,非常适合对动态库的交叉调用;可以提高用户的开发效率,并且具有良好的扩展性。


图1为本发明的流程图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例—种基于插件机制的动态库统一调度方法,包括动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口 ;根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。该方法具体步骤如图1所示,包括在步骤401中,动态库管理模块获得所要加载动态库信息,然后执行步骤402 ;在步骤402中,判断所要加载的动态库是否在本地,如果在本地执行404 ;如果不在本地执行403 ;在步骤403中,下载不在本地的动态库,然后执行步骤404 ;在步骤404中,加载动态库,然后执行步骤405 ;在步骤405中,获得动态库的句柄,然后执行步骤406 ;在步骤406中,获得接口函数句柄,然后执行步骤407 ;在步骤407中,释放已经使用完成的动态库。
权利要求
1.一种基于插件机制的动态库统一调度方法,其特征在于,包括 动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口; 根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。
2.根据权利要求1所述的一种基于插件机制的动态库统一调度方法,其特征在于,该方法具体包括以下步骤 a)系统调用动态库管理模块,并将所需要的动态库信息传递给动态库管理模块; b)判断本地是否存在相对应的动态库,若为是,执行步骤C),若为否,执行步骤d); c)如果本地存在相应的动态库,则加载此动态库,并执行步骤f); d)如果本地不存在相应的动态库,则通过网络去下载此动态库,并执行步骤e); e)判断是否下载成功,若为是,返回步骤c);否则,返回动态库加载失败信息; f)获得所加载每一个动态库的句柄; g)根据需要获得某一个动态库的某一接口函数地址; h)使用完毕后,释放所有加载的动态库。
全文摘要
本发明涉及一种基于插件机制的动态库统一调度方法,包括动态库管理模块根据需要加载的动态库信息,统一加载所需要的动态库信息,并提供统一的动态库调用接口;根据需要调用某一动态库的某一个接口函数,使用完毕后,动态库管理模块自动将所加载的动态库依次释放。与现有技术相比,本发明具有管理高效、使用方便、提高用户开发效率等优点。
文档编号G06F9/46GK103019819SQ20121051643
公开日2013年4月3日 申请日期2012年12月5日 优先权日2012年12月5日
发明者崔新宇, 曹发, 张远盛 申请人:上海创图网络科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1