CN101021804A - 调用动态库的方法、装置及动态库服务器 - Google Patents
调用动态库的方法、装置及动态库服务器 Download PDFInfo
- Publication number
- CN101021804A CN101021804A CNA2007100867558A CN200710086755A CN101021804A CN 101021804 A CN101021804 A CN 101021804A CN A2007100867558 A CNA2007100867558 A CN A2007100867558A CN 200710086755 A CN200710086755 A CN 200710086755A CN 101021804 A CN101021804 A CN 101021804A
- Authority
- CN
- China
- Prior art keywords
- dynamic base
- function
- master routine
- server
- parameter
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种调用动态库的方法,包括:主程序向动态库服务器发送调用动态库中函数的请求消息,所述请求消息中携带有调用函数的参量;动态库服务器根据所述参量调用动态库中的函数,并在响应消息中向主程序返回函数执行结果。本发明实施例还公开了一种调用动态库的装置,包括:主程序执行单元,用于发送请求消息调用动态库中的函数;动态库服务器,用于根据请求消息中携带的参量完成动态库单元中函数的调用,并在响应消息中向主程序执行单元返回函数执行结果;动态库单元,用于根据动态库服务器的调用请求运行函数,并上报函数执行结果。本发明实施例还公开了一种动态库服务器。本发明提高了主程序的稳定性和动态库的可移植性。
Description
技术领域
本发明涉及操作系统领域,特别是调用动态库的方法、装置及动态库服务器。
背景技术
动态库作为操作系统结构中必不可少的一部分,用于将一个复杂的程序分解为多个不同的部分,提供给不同开发者/厂家来完成。
目前,调用动态库的方式通常为将动态库与可执行程序放在一台计算机上,在编译可执行程序时链接,或在可执行程序运行时加载指定文件,从而实现可执行程序调用动态库中的一个或多个函数的功能。不管是采用链接的方式还是采用动态加载的方式,动态库都是作为可执行程序的一部分,被加载到可执行程序的某段地址空间中,并像调用本地函数一样地调用。
然而,采用现有的这种动态库的调用方式,也带来了一些问题。首先就是有可能会造成主程序的不稳定。因为动态库可能是第三方提供的,主程序的提供者难以控制其质量,在动态库中可能会出现的诸如内存泄露、指针异常访问等严重缺陷,将直接导致主程序的运行异常。并且一旦主程序出现异常,由于其复杂而庞大的结构,问题的定位也较为困难。
其次,现有的动态库也不能灵活配置。基于某个操作系统的主程序,其只能调用该系统下的动态库,如果想要调用其它操作系统下的动态库,则需要将该动态库重新编译并移植到本操作系统中。有时甚至在与主程序基于不同版本的操作系统或编译器的情况下,都有可能需要重新编译动态库。并且,一个Windows下的主程序,如果要将其移植到Unix下,其相应的动态库也要同时被移植,否则该程序将无法正常运行,反之亦然。
发明内容
有鉴于此,本发明实施例的目的在于提供调用动态库的方法,用于实现动态库发生异常时的问题准确定位,并提高动态库的可移植性。
本发明实施例的另一目的在于提供调用动态库的装置,用于提高动态库问题定位准确性和动态库的可移植性。
本发明实施例的第三目的在于提供一种动态库服务器,用于实现主程序与动态库函数调用相分离。
本发明的实施例提供了一种调用动态库的方法,包括:主程序向动态库服务器发送调用动态库中函数的请求消息,所述请求消息中携带有调用函数的参量;
动态库服务器根据所述参量调用动态库中的函数,并在响应消息中向主程序返回函数执行结果。
本发明的实施例还提供了一种调用动态库的装置,包括:
主程序执行单元,用于发送请求消息调用动态库中的函数,所述请求消息中携带有调用函数的参量;
动态库服务器,用于根据所述参量完成动态库单元中函数的调用,并在响应消息中向所述主程序执行单元返回函数的执行结果;
动态库单元,用于根据所述动态库服务器的调用请求运行所述函数,并向动态库服务器上报执行结果。
本发明的实施例还提供了一种动态库服务器,包括:
加载模块,用于在启动时将自身管理的动态库加载到本地;
消息处理模块,用于接收主程序发送的携带有调用函数的参量的请求消息,并根据所述参量发送调用指令;将执行结果通过响应消息返回给主程序;
调用模块,用于根据所述调用指令中的函数名及参数列表调用对应的函数,并将函数的执行结果上报给所述消息处理模块。
本发明的实施例将主程序对动态库的调用通过动态库服务器来执行,主程序与动态库服务器间采用消息机制传送参数和数据,从而实现了动态库的错误仅会影响到动态库服务器,而主程序仅仅在响应消息中得到出错信息,不会影响主程序的运行;另一方面,本发明的实施例允许主程序与动态库服务器基于不同的操作系统,可以设置于不同的计算机上,提高了动态库的可移植性。
附图说明
图1为本发明的实施例中调用动态库的方法流程图;
图2为本发明的实施例中主程序、动态库服务器及动态库三者间的关系示意图;
图3为本发明的实施例中调用动态库的装置结构图。
具体实施方式
本发明的实施例将主程序对动态库的调用通过动态库服务器来执行,主程序与动态库服务器间采用消息机制传送参数和数据,实现了动态库的错误仅会影响到动态库服务器,而主程序仅仅在响应消息中得到出错信息,不会影响主程序的运行;另一方面,本发明的实施例允许主程序与动态库服务器基于不同的操作系统,可以设置于不同的计算机上,提高了动态库的可移植性;并且,将主程序移植到其它系统上执行时,不必将动态库全部也移植过来,从而也减少了产品移植的时间。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
如图1所示,为本发明的实施例中调用动态库的方法流程图,该方法可分为初始化和函数调用两个部分,具体包括以下步骤:
步骤101、动态库服务器加载动态库。动态库服务器在部署完成后便会启动,启动时即执行该步骤,以获取自身管理的动态库。
在目前通用的操作系统Windows和Unix中,用于完成加载动态库功能的语句有所不同,在Windows系统中,使用load library函数,而在Unix系统中,则是使用dlopen函数。通过执行加载语句,动态库服务器获得了自身管理的动态库的句柄。
在本发明的实施例中,动态库服务器与其加载的动态库必须设置于同一台设备上,这是因为基于现有的Windows和Unix操作系统架构,所述loadlibrary函数和dlopen函数都只能加载本地计算机的动态库。
步骤102、主程序请求获得动态库服务器已加载成功的动态库列表。
在本发明的实施例中,动态库服务器能够加载并管理多个动态库。通过执行步骤101,动态库服务器获取了自身管理的所有动态库的句柄,而此时主程序还不知道动态库服务器具体加载了哪个/些动态库,因此要通过本步骤来获取已加载成功的动态库列表。
步骤103、动态库服务器向主程序返回已加载成功的动态库列表。该列表中包含了加载的动态库的名称,例如a.dll、b.dll等动态库。
在本发明的实施例中,主程序与动态库服务器的关系为多对多,即一个主程序可以向多个动态库服务器发送函数调用请求,而一个动态库服务器所管理的动态库可以被多个主程序所调用。主程序、动态库服务器及动态库三者间的关系如图2所示。其中,主程序1可以调用动态库服务器1、2和n,动态库服务器1管理的动态库包括a.dll,依此类推。
在动态库中,各函数的调用可能是有先后关系的。比如一些动态库要求先要调用一个初始化(init)函数,完成分配缓存(buffer)、初始化变量等功能,然后再调用执行(exe)函数,完成该函数的调用。对于这两个函数而言,其执行顺序是固定的,即init函数一定在exe函数前被调用,如果该函数未被初始化而直接调用exe,则会导致该函数的执行出错。另一种情况是动态库中保存有某种状态,不同函数的调用会导致该状态的变更,例如打开文件(open)、写入(do)和关闭文件(close)这三个函数,执行open打开了一个文件,执行do向该文件中写入,执行close关闭该文件,该执行顺序一旦出错,必然会导致对该文件操作的失败。正确的执行顺序是由动态库的使用者来保证的,该使用者必须按照正确的顺序去调用具有先后次序的函数,然而存在另一个使用者无法决定的问题,当具有先后执行顺序的各函数分配给了不同的动态库服务器,例如init函数和exe函数被分配给了不同动态库服务器,即使使用者按照正确的顺序调用这两个函数,这两个调用请求被发送给了不同的动态库服务器,执行init函数的动态库服务器获得了该函数的句柄,然而调用exe函数的另一动态库服务器由于没有该函数句柄,导致无法正确执行该函数。对于文件操作的情况也类似,如果open、do和close这三个函数由不同的动态库服务器管理,而这些动态库服务器可能设置于不同的物理设备上,那么即使使用者按照正确的顺序去调用这三个函数,这些函数也无法针对同一文件进行操作。
为了解决前述问题,本发明的实施例提出了会话组(session)的概念,将具有先后调用关系的一组函数设置为一个session,具有相同的session_id,而具有相同session_id的一组函数调用由同一动态库服务器管理。在主程序中,对于具有同一session_id的一组函数调用也只会发送给同一动态库服务器。
通过以上步骤,就完成了对于动态库服务器的初始化,主程序也获得了各动态库服务器加载成功的动态库列表,下面的流程则是执行具体的函数调用。
步骤104、主程序要求调用动态库中的函数。假设此处要求调用的是a.dll动态库中的func1函数,a.dll为动态库名,func1为函数名。
步骤105、主程序向动态库服务器发送函数调用的请求消息。请求消息中携带有调用函数的参量,所述参量包括动态库名、函数名及参数列表。
主程序查阅动态库列表,向所述a.dll动态库所隶属的动态库服务器发送请求消息,消息中携带动态库名、函数名及参数列表。参数列表中包括各参数的类型、长度及参数值等。
步骤106、动态库服务器接收到请求消息后,根据动态库名及函数名调用相应函数执行。
基于不同操作系统的动态库服务器调用函数的语句有所不同,依然以Windows和Unix操作系统为例,在Windows系统中,动态库服务器根据动态库的名称a.dll,以步骤101中获得的该动态库的句柄及要调用的函数名func1为输入参数,使用get proc address语句,在Unix系统中,则是使用dlsym语句,执行该语句后,动态库服务器获得了欲调用函数的地址。根据该地址,动态库服务器使用请求消息中对应该函数的参数作为输入参数,执行该函数。在执行正确的情况下,动态库服务器获得该函数的执行结果和输出参数列表。
步骤107、动态库服务器向主程序返回响应消息,消息中携带函数的执行结果。该执行结果包括函数执行的返回值及输出参数列表。
在本发明的实施例中,主程序和动态库服务器之间由于是采用消息机制来传送数据的,因此二者可以设置于同一台计算机上,也可以设置在不同的计算机上。当设置在不同计算机上时,二者通过网络连接来传递消息。网络连接中传送的数据采用的是网络字节序,而不同操作系统所使用的字节序则可能与网络字节序不同。以Windows操作系统为例,其采用的就是网络字节序相反的Windows字节序。假设四字节数据的网络字节序为01,02,03,04,则其Windows字节序为04,03,02,01。非网络字节序的数据在网络中传输时,会导致传输出错;同样,当主程序基于的操作系统与动态库服务器基于的操作系统使用不同字节序时,也会导致对端接收到的数据出错。
为解决以上问题,本发明的实施例采用了将数据的字节序在主程序作为发送端或动态库服务器作为发送端时,统一为网络字节序的方案,即在消息的发送端,把数据的字节序强制转换为网络字节序。
具体包括:如果发送端的操作系统采用的是Windows字节序,并且传输的数据具有明确的参数类型,如单字节整型、单字节整型指针、二字节整型(short)、二字节整型指针(short*)、四字节整型(long)、四字节整型指针(long*)、double、double*,则操作系统使用特定的转换语句,例如针对short和short*数据,使用htons语句转换为网络字节序,针对long和long*数据,则使用htonl语句转换。在将网络字节序数据传送到对端后,如果对端支持Windows字节序,则还要通过ntohs和ntohl语句将数据的字节序恢复。这种转换方式通过消息机制来实现,发送端在构造消息时,判断消息中携带的参数或数据是否为前述类型,如果是,则通过相应语句将其转换为网络字节序,接收端接收到该消息后,再根据需要将参数或数据转换为本机字节序。
然而在实际应用中,还存在另一种情形,就是传输的数据没有明确的参数类型,动态库与动态库的使用者使用了非通用的字节序。此时,则要由动态库的使用者和动态库约定字节序的实现。例如:
extern″C″serviceapi(char*pStruct)
{
struct MYSTRUCT*pstr=(struct MYSTRUCT*)pStruct;
……
}
struct MYSTRUCT*语句的功能是将参数pStruct强制转换为动态库与使用者约定的MYSTRUCT结构,这一转换在发送端完成,在接收端将字节序恢复。
extern″C″serviceapi(char*pStruct)
{
unsigned short usRealValue;
memcpy(&usRealValue,pStruct,sizeof(usRealValue))
……
}
Memcpy语句的功能是将一个缓存器的内容复制到另一缓存器中,其三个输入参数中,前两个参数是缓存器地址,第三个参数为复制内容的大小。usRealValue为short型,大小为2字节,因此将pStruct缓存器中的2字节数据复制到usRealValue中,从而也将pStruct缓存器的数据类型也转换为了usRealValue缓存器的数据类型。
通过以上方法,就实现了对网络字节序与非网络字节序的转换,在一定程度上保证了主程序与动态库服务器间网络数据传输的准确性。
采用如图1所示的调用动态库的方法,实现了不论动态库处于哪种系统环境下,都可以被主程序所调用,使得系统整体架构更为灵活。如果出于市场需求的考虑,要将主程序移植到不同的操作系统下运行,利用图1所示的方法,就避免了第三方的动态库没有移植而导致的程序无法运行的问题,从而降低了不同厂家产品的移植风险,并且由于一些动态库没有移植,也节省了产品的移植时间。而由于存在着兼容性的问题,有些技术是很难被移植到别的操作系统下的,比如Windows下的Com技术,此时可把它们做成动态库,仍然放在Windows系统下运行,这样就又降低了产品移植的技术风险。
另外,采用图1所示的方法,动态库的异常不会影响到主程序,保证了主程序运行的稳定性。由于动态库是被动态库服务器加载与执行的,即使动态库存在执行错误,该错误被转移到了动态库服务器上,而主程序仅仅会收到出错的响应消息,不会因为该错误导致主程序运行异常,并且通过该出错的响应消息,主程序能够准确获知哪个动态库发生错误,从而实现了故障快速定位。
最后,由于本发明的实施例中动态库服务器可以有多个,其中的一个发生异常不会影响到其它动态库服务器,这也从另一方面保证了业务运行的稳定性。
如图3所示,为本发明的实施例中调用动态库的装置结构图,具体包括:
主程序执行单元31,用于在运行主程序的过程中,通过发送请求消息调用动态库中的函数,所述请求消息中携带有调用函数的参量。
动态库服务器32,用于根据所述参量完成所述函数的调用,并在响应消息中向所述主程序执行单元返回函数执行结果及输出参数;
动态库单元33,用于根据动态库服务器32的请求运行所述函数,并向动态库服务器上报函数执行结果及输出参数。
所述主程序执行单元31与动态库服务器32可以设置不同的计算机设备上,而动态库服务器32与动态库33则必须设置于同一台计算机设备上。
其中,所述动态库服务器32又可以具体包括:
加载模块321,用于在所述动态库服务器启动时将自身管理的动态库加载到本地。加载模块在动态库服务器启动时加载动态库,加载的结果是获得动态库的句柄。并通过初始化流程,将加载成功的动态库的列表发送给主程序。
消息处理模块322,用于接收所述主程序执行单元发送的请求消息,并根据消息中携带的动态库名、函数名及参数列表发送调用指令;将函数的执行结果及输出参数通过响应消息返回给所述主程序执行单元。在消息创建的过程中,由主程序模块和消息处理模块完成字节序的转换,使用统一的网络字节序来传输参数或数据。
调用模块323,用于根据所述调用指令中的函数名及参数列表调用相应的函数,并将执行结果及返回参数上报给所述消息处理模块。
为简便起见,在图3中,仅仅对一个动态库服务器描述了其内部结构,其它与此相同,并且主程序执行单元、动态库服务器及动态库三者之间的对应关系与图2相似。
在本发明的另一实施例中,提供了一种动态库服务器,包括:
加载模块,用于在启动时将自身管理的动态库加载到本地,并向主程序返回加载成功的动态库的列表;
消息处理模块,用于接收主程序发送的请求消息,并根据消息中携带的动态库名、函数名及该函数的参数列表等参量发送调用指令;将函数的执行结果通过响应消息返回给主程序;
调用模块,用于根据所述调用指令中的函数名及参数列表调用对应的函数,并将执行结果及输出参数上报给所述消息处理模块。
所述动态库服务器的实现采用了模块化的方式,功能与结构都相对简单,可以较为容易地做到在不同的操作系统下都可以编译执行,这样就使得不同操作系统下的动态库都可以有相应的动态库服务器将其加载,实现了不同动态库处于多种系统环境下也能被主程序调用的目的。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (12)
1、一种调用动态库的方法,其特征在于,包括:
主程序向动态库服务器发送调用动态库中函数的请求消息,所述请求消息中携带有调用函数的参量;
动态库服务器根据所述参量调用动态库中的函数,并在响应消息中向主程序返回函数执行结果。
2、根据权利要求1所述的调用动态库的方法,其特征在于,该方法还进一步包括以下步骤:动态库服务器在启动时加载所述动态库服务器自身管理的动态库,并根据主程序的请求,向主程序返回加载成功的动态库列表。
3、根据权利要求2所述的调用动态库的方法,其特征在于,所述动态库服务器在加载自身管理的动态库时,将多个具有先后调用关系的函数调用设置于同一会话组中,对于隶属于同一会话组的多个调用,只发送给同一动态库服务器。
4、根据权利要求1所述的调用动态库的方法,其特征在于,所述携带的参量包括动态库名、函数名及该函数的参数列表。
5、根据权利要求1至5中任意一项所述的调用动态库的方法,其特征在于,所述向主程序返回函数执行结果进一步包括:
动态库服务器将函数执行的输出参数通过所述响应消息返回给主程序。
6、根据权利要求5所述的调用动态库的方法,其特征在于,在所述请求消息及所述响应消息中携带的函数返回值及参数使用网络字节序,当所述主程序或动态库服务器使用非网络字节序时,则将所述函数返回值及参数转换为网络字节序。
7、根据权利要求6所述的调用动态库的方法,其特征在于,所述将所述函数返回值及参数转换为网络字节序包括以下步骤:
所述函数返回值及参数具有明确的参数类型,由动态库服务器或主程序的消息发送与接受机制完成本机字节序与网络字节序的转换;或
所述返回值及参数不具有明确的参数类型,由动态库的使用者与动态库协商实现字节序的统一。
8、一种调用动态库的装置,其特征在于,包括:
主程序执行单元,用于发送请求消息调用动态库中的函数,所述请求消息中携带有调用函数的参量;
动态库服务器,用于根据所述参量完成动态库单元中函数的调用,并在响应消息中向所述主程序执行单元返回函数的执行结果;
动态库单元,用于根据所述动态库服务器的调用请求运行所述函数,并向动态库服务器上报执行结果。
9、根据权利要求8所述的调用动态库的装置,其特征在于,所述动态库服务器具体包括:
加载模块,用于在所述动态库服务器启动时将自身管理的动态库加载到本地;
消息处理模块,用于接收所述主程序执行单元发送的请求消息,并根据消息中携带的动态库名、函数名及参数列表发送调用指令;将函数的执行结果及输出参数通过响应消息返回给所述主程序执行单元;
调用模块,用于根据所述调用指令中的函数名及参数列表调用相应的函数,并将执行结果及返回参数上报给所述消息处理模块。
10、根据权利要求8或9所述的调用动态库的装置,其特征在于,所述主程序执行单元调用一个或一个以上的动态库服务器,所述动态库服务器管理一个或一个以上的动态库单元。
11、根据权利要求8或9所述的调用动态库的装置,其特征在于,所述动态库服务器与动态库设置于同一台计算机上。
12、一种动态库服务器,其特征在于,包括:
加载模块,用于在启动时将自身管理的动态库加载到本地;
消息处理模块,用于接收主程序发送的携带有调用函数的参量的请求消息,并根据所述参量发送调用指令;将执行结果通过响应消息返回给主程序;
调用模块,用于根据所述调用指令中的函数名及参数列表调用对应的函数,并将函数的执行结果上报给所述消息处理模块。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100867558A CN100464305C (zh) | 2007-03-13 | 2007-03-13 | 调用动态库的方法、装置及动态库服务器 |
PCT/CN2008/070462 WO2008110111A1 (fr) | 2007-03-13 | 2008-03-11 | Procédé et dispositif pour appeler une bibliothèque dynamique et serveur de bibliothèque dynamique et dispositif mettant en œuvre un programme maître |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100867558A CN100464305C (zh) | 2007-03-13 | 2007-03-13 | 调用动态库的方法、装置及动态库服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101021804A true CN101021804A (zh) | 2007-08-22 |
CN100464305C CN100464305C (zh) | 2009-02-25 |
Family
ID=38709578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100867558A Expired - Fee Related CN100464305C (zh) | 2007-03-13 | 2007-03-13 | 调用动态库的方法、装置及动态库服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN100464305C (zh) |
WO (1) | WO2008110111A1 (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008110111A1 (fr) * | 2007-03-13 | 2008-09-18 | Huawei Technologies Co., Ltd. | Procédé et dispositif pour appeler une bibliothèque dynamique et serveur de bibliothèque dynamique et dispositif mettant en œuvre un programme maître |
CN102402455A (zh) * | 2010-09-14 | 2012-04-04 | 北大方正集团有限公司 | 调用动态链接库的方法和装置 |
CN101770394B (zh) * | 2008-12-29 | 2012-10-03 | 上海科泰世纪科技有限公司 | 基于构件接口的异步调用方法 |
CN102780997A (zh) * | 2012-06-29 | 2012-11-14 | 深圳市赛格导航科技股份有限公司 | 无线通讯模块的通信方法及装置 |
CN103034501A (zh) * | 2012-12-25 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种linux平台的函数调用方法及函数调用装置 |
CN103324542A (zh) * | 2013-07-17 | 2013-09-25 | 天脉聚源(北京)传媒科技有限公司 | 一种模块间调用的方法及装置 |
CN104539506A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮集团有限公司 | 一种网络传输服务构件及网络传输系统 |
CN104699485A (zh) * | 2015-03-19 | 2015-06-10 | 神华集团有限责任公司 | 海量程序管理方法及构建方法 |
CN105068791A (zh) * | 2015-07-15 | 2015-11-18 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN105487849A (zh) * | 2014-12-22 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种调用dll未知导出函数的方法及系统 |
CN106959870A (zh) * | 2017-02-20 | 2017-07-18 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN108595218A (zh) * | 2018-04-17 | 2018-09-28 | 网宿科技股份有限公司 | 一种加载系统动态库的方法和装置 |
CN109271414A (zh) * | 2018-12-05 | 2019-01-25 | 北京安华金和科技有限公司 | 一种基于ipc的数据库本地通信的审计方法 |
CN111209056A (zh) * | 2020-01-02 | 2020-05-29 | 北京东土科技股份有限公司 | 功能函数的加载方法、装置、可读存储介质及电子设备 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、系统及应用 |
CN111506357A (zh) * | 2020-02-27 | 2020-08-07 | 湖南大学 | 一种动态库自动加载方法、系统及应用 |
CN111708704A (zh) * | 2020-06-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种云真机测试方法、装置、终端及存储介质 |
CN113448655A (zh) * | 2021-07-09 | 2021-09-28 | 赞同科技股份有限公司 | C标准动态库的调用方法与装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382076B (zh) * | 2020-03-10 | 2023-04-25 | 抖音视界有限公司 | 应用程序的测试方法、装置、电子设备及计算机存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006278A (en) * | 1997-07-18 | 1999-12-21 | Electronic Data Systems Corporation | Method and system for importing remote functions to a network computer |
CA2329891A1 (en) * | 2000-12-29 | 2002-06-29 | Subsecond Technology Inc. | Method and apparatus for remote database maintenance and access |
CN1257455C (zh) * | 2002-07-25 | 2006-05-24 | 梁肇新 | 进程间调用门技术 |
US7100172B2 (en) * | 2002-11-27 | 2006-08-29 | Microsoft Corporation | System and method for changing operation of an application without recompiling |
US7814471B2 (en) * | 2004-12-16 | 2010-10-12 | Microsoft Corporation | Method and apparatus for providing DLL compatibility |
CN100389572C (zh) * | 2005-04-11 | 2008-05-21 | 华为技术有限公司 | 一种远程调用通信组件的系统及方法 |
CN100521691C (zh) * | 2005-09-21 | 2009-07-29 | 烽火通信科技股份有限公司 | 一种基于corba的eml-nml接口实现浮动的方法 |
CN100464305C (zh) * | 2007-03-13 | 2009-02-25 | 华为技术有限公司 | 调用动态库的方法、装置及动态库服务器 |
-
2007
- 2007-03-13 CN CNB2007100867558A patent/CN100464305C/zh not_active Expired - Fee Related
-
2008
- 2008-03-11 WO PCT/CN2008/070462 patent/WO2008110111A1/zh active Application Filing
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008110111A1 (fr) * | 2007-03-13 | 2008-09-18 | Huawei Technologies Co., Ltd. | Procédé et dispositif pour appeler une bibliothèque dynamique et serveur de bibliothèque dynamique et dispositif mettant en œuvre un programme maître |
CN101770394B (zh) * | 2008-12-29 | 2012-10-03 | 上海科泰世纪科技有限公司 | 基于构件接口的异步调用方法 |
CN102402455A (zh) * | 2010-09-14 | 2012-04-04 | 北大方正集团有限公司 | 调用动态链接库的方法和装置 |
CN102780997A (zh) * | 2012-06-29 | 2012-11-14 | 深圳市赛格导航科技股份有限公司 | 无线通讯模块的通信方法及装置 |
CN102780997B (zh) * | 2012-06-29 | 2018-06-26 | 深圳市赛格导航科技股份有限公司 | 无线通讯模块的通信方法及装置 |
CN103034501B (zh) * | 2012-12-25 | 2016-08-03 | 广东威创视讯科技股份有限公司 | 一种linux平台的函数调用方法及函数调用装置 |
CN103034501A (zh) * | 2012-12-25 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种linux平台的函数调用方法及函数调用装置 |
CN103324542A (zh) * | 2013-07-17 | 2013-09-25 | 天脉聚源(北京)传媒科技有限公司 | 一种模块间调用的方法及装置 |
CN103324542B (zh) * | 2013-07-17 | 2017-04-12 | 天脉聚源(北京)传媒科技有限公司 | 一种模块间调用的方法及装置 |
CN105487849A (zh) * | 2014-12-22 | 2016-04-13 | 哈尔滨安天科技股份有限公司 | 一种调用dll未知导出函数的方法及系统 |
CN104539506A (zh) * | 2015-01-27 | 2015-04-22 | 浪潮集团有限公司 | 一种网络传输服务构件及网络传输系统 |
CN104699485A (zh) * | 2015-03-19 | 2015-06-10 | 神华集团有限责任公司 | 海量程序管理方法及构建方法 |
CN105068791B (zh) * | 2015-07-15 | 2018-10-23 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN105068791A (zh) * | 2015-07-15 | 2015-11-18 | 贵阳朗玛信息技术股份有限公司 | 一种实现底层库的方法及装置 |
CN106959870A (zh) * | 2017-02-20 | 2017-07-18 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN106959870B (zh) * | 2017-02-20 | 2020-09-29 | 北京数字联盟网络科技有限公司 | Nginx动态模块加载方法和装置 |
CN108595218A (zh) * | 2018-04-17 | 2018-09-28 | 网宿科技股份有限公司 | 一种加载系统动态库的方法和装置 |
CN109271414A (zh) * | 2018-12-05 | 2019-01-25 | 北京安华金和科技有限公司 | 一种基于ipc的数据库本地通信的审计方法 |
CN109271414B (zh) * | 2018-12-05 | 2021-08-13 | 北京安华金和科技有限公司 | 一种基于ipc的数据库本地通信的审计方法 |
CN111209056A (zh) * | 2020-01-02 | 2020-05-29 | 北京东土科技股份有限公司 | 功能函数的加载方法、装置、可读存储介质及电子设备 |
CN111209056B (zh) * | 2020-01-02 | 2021-02-19 | 北京东土科技股份有限公司 | 功能函数的加载方法、装置、可读存储介质及电子设备 |
CN111459489A (zh) * | 2020-02-27 | 2020-07-28 | 湖南大学 | 一种动态库自动服务化封装方法、系统及应用 |
CN111506357A (zh) * | 2020-02-27 | 2020-08-07 | 湖南大学 | 一种动态库自动加载方法、系统及应用 |
CN111459489B (zh) * | 2020-02-27 | 2023-09-26 | 湖南大学 | 一种动态库自动服务化封装方法、系统及应用 |
CN111708704A (zh) * | 2020-06-19 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种云真机测试方法、装置、终端及存储介质 |
CN111708704B (zh) * | 2020-06-19 | 2024-05-17 | 腾讯科技(深圳)有限公司 | 一种云真机测试方法、装置、终端及存储介质 |
CN113448655A (zh) * | 2021-07-09 | 2021-09-28 | 赞同科技股份有限公司 | C标准动态库的调用方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2008110111A1 (fr) | 2008-09-18 |
CN100464305C (zh) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100464305C (zh) | 调用动态库的方法、装置及动态库服务器 | |
US10901721B2 (en) | Methods and apparatus for version aliasing mechanisms and cumulative upgrades for software lifecycle management | |
US10547667B1 (en) | Heterogeneous cloud processing utilizing consumer devices | |
US5892941A (en) | Multiple user software debugging system | |
CN100512153C (zh) | 管理多个问题单系统上的事件的系统和方法 | |
US7992132B2 (en) | Server side application integration framework | |
US20130205279A1 (en) | Methods and apparatus for analyzing software interface usage | |
IE20070189A1 (en) | System and method for managing objects according to the common information model | |
US6161135A (en) | Method and apparatus for software features synchronization between software systems | |
KR20220059814A (ko) | Api 요청 처리 시스템 | |
CN102279857A (zh) | 一种实现数据复制的方法及系统 | |
CN112486814A (zh) | 系统迁移性测试方法、迁移性测试系统、装置及存储介质 | |
FI120286B (fi) | Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi | |
CN110083366B (zh) | 应用运行环境的生成方法、装置、计算设备及存储介质 | |
CN112989123A (zh) | 一种基于dds的动态数据类型通信方法及装置 | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
JP2009032253A (ja) | クライアント・サーバ・アーキテクチャに使用するためのミドルウェア | |
CN100414993C (zh) | 一种igrs av服务器设备的实现方法 | |
US20050132084A1 (en) | Method and apparatus for providing server local SMBIOS table through out-of-band communication | |
US7725770B2 (en) | Enhanced failure data collection system apparatus and method | |
CN103617077A (zh) | 智能型云端化移转的方法与系统 | |
CN112416980A (zh) | 数据业务处理方法、装置及设备 | |
WO2020056585A1 (zh) | 用于程序文件编写和运行处理的方法及装置、系统 | |
US11775356B2 (en) | Method and system for facilitating backwards compatibility of a rest API on an evolving data model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090225 Termination date: 20150313 |
|
EXPY | Termination of patent right or utility model |