CN1731360A - 一种不同运行平台间的函数调用的方法 - Google Patents
一种不同运行平台间的函数调用的方法 Download PDFInfo
- Publication number
- CN1731360A CN1731360A CN 200510092962 CN200510092962A CN1731360A CN 1731360 A CN1731360 A CN 1731360A CN 200510092962 CN200510092962 CN 200510092962 CN 200510092962 A CN200510092962 A CN 200510092962A CN 1731360 A CN1731360 A CN 1731360A
- Authority
- CN
- China
- Prior art keywords
- parameter
- platform
- function
- pointer
- receiving platform
- 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
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 224
- 230000005540 biological transmission Effects 0.000 claims description 37
- 210000001503 joint Anatomy 0.000 claims description 3
- 238000007789 sealing Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种不同运行平台间的函数调用的方法,其中接收平台具有若干用于执行不同任务的任务函数,包括如下步骤:(1)将接收平台上各个任务函数各分配一个消息号,使它们一一对应;(2)在发送平台上将需要在接收平台上执行的任务函数调用封装成至少包括带消息号的接口函数;(3)发送平台发送所述接口函数至接收平台;(4)接收平台执行接收到的接口函数,实现对接收平台上的任务函数调用过程;(5)接收平台在接口函数执行完成后,返回接口函数执行结果至所述发送平台。本发明相对现有技术,采用统一接口函数实现不同平台间的任务函数调用,可减少系统接口,可实现多功能的任务函数调用,且功能扩展性强。
Description
技术领域
本发明涉及一种函数调用的通讯方法,特别是一种不同运行平台间的函数调用的方法。
技术背景
公知的,一个运行平台上可以处理若干任务,其处理任务的过程是通过执行任务函数来完成的,其任务函数的调用则是通过该运行平台的控制系统来实现。然而,如果想要实现不同的运行平台之间的函数调用,达到多功能通讯的目的,由于各个函数调用的情况不同,如函数名不同、函数调用时是否需要参数、函数调用后是否返回结果等等,因此,发送平台必须将这些信息全部发送到接收平台,才能在接收平台上正确的实现函数调用,这样就造成运行平台之间通讯的数据传输量大。并且,目前不同运行平台之间通讯的方法中,一般都是对于不同的任务或函数,采用不同的通讯接口,因此随着不同任务增多,通讯接口也必将随着增加,增加了系统的负荷。由于上述原因的限制,目前的不同运行平台之间的通讯,一般都仅仅限于几个常用任务函数的调用,跨平台可实现的功能单一,不利于技术的发展。
发明内容
本发明的目的是:针对现有技术的不足,提供一种采用统一接口函数即可实现一平台对另一平台上多种任务函数调用的不同运行平台间的函数调用的方法。
为了解决上述技术问题,本发明所采取的技术方案是:一种不同运行平台间的函数调用的方法,其中接收平台具有若干用于执行不同任务的任务函数,包括如下步骤:
(1)收平台上各个任务函数各分配一个消息号,使它们一一对应;
(2)在发送平台上将需要在接收平台上执行的任务函数调用封装成至少包括带消息号的接口函数;
(3)发送平台发送所述接口函数至接收平台;
(4)接收平台执行接收到的接口函数,实现对接收平台上的任务函数调用过程;
(5)接收平台在接口函数执行完成后,返回接口函数执行结果至所述发送平台。
所述接口函数仅带消息号,步骤(4)中,所述接收平台执行所述接口函数时,可以根据消息号查找接收平台上对应的任务函数,然后执行该任务函数。
函数调用具有相关参数时,步骤(2)中,发送平台可以存储相关参数,并将函数调用的相关参数信息封装到所述接口函数中。
所述函数调用的相关参数信息可以包括参数所占存储空间大小值,所述步骤(4)中,接收平台在执行接口函数时,将根据所述参数所占空间大小值开辟一内存空间。
所述函数调用的相关参数信息还可以包括发送平台需发送参数的指令,根据此指令,步骤(3)中,发送平台还将所存储的相关参数发送到接收平台;所述步骤(4)中,接收平台接收所述接口函数,并在开辟好内存空间后,再接收来自发送平台的相关参数,并将该参数存储在所述内存空间中,从而根据消息号查找对应的任务函数,并将参数用于任务函数的执行。
所述函数调用的相关参数信息还可以包括发送平台需获得任务函数执行结果,并存储结果于指定存储空间的指令,根据此指令,所述步骤(4)中接收平台开辟的内存空间用于存储任务函数执行结果,并且接收平台还将此执行结果返回到发送平台,所述发送平台接收到所述任务函数执行结果后,将它存储到指定的存储空间中。
所述发送平台存储的相关参数中可以包括指针参数,所述函数调用的相关参数信息中还包括指针参数的位置信息,以及指针参数所指向的参数实体所占存储空间大小值;所述步骤(4)中,接收平台还根据所述指针参数所指向的参数实体所占存储空间大小值,开辟子内存空间。
所述函数调用的相关参数信息还可以包括发送平台需发送指针参数所指向的参数实体的指令,根据此指令,步骤(3)中,发送平台还将所述指针参数所指向的参数实体发送到接收平台;所述步骤(4)中,接收平台接收所述接口函数,并在开辟好内存空间以及子内存空间后,再接收来自发送平台的指针参数所指向的参数实体,并将该参数实体存储在所述子内存空间中,从而根据消息号查找对应的任务函数,并将参数实体用于任务函数的执行。
所述步骤(4)中,接收平台还可以根据所述指针参数的位置信息,在所述内存空间中的相应位置,填写新的指针参数,使其指向所述子内存空间。
所述函数调用的相关参数信息还可以包括发送平台需获得任务函数执行结果,并将该结果存储到某指针参数所指定的存储空间中的指令,根据该指令,步骤(3)中,发送平台还将所述指针参数发送到接收平台,所述步骤(4)中,接收平台还接收该指针参数,并先存储该指针参数的值;其次根据指针参数的位置信息,在所述内存空间中的相应位置,填写新的指针参数,使其指向所述子内存空间;然后在执行完任务函数后,将任务函数的执行结果以及指针参数的值返回给发送平台,所述发送平台将该执行结果存储到所述指针参数所指向的存储空间中。
本发明相对现有技术的优点是:本发明由于将不同运行平台上的函数调用统一封装成一个接口函数,从而减少了通讯接口,尤其是对于发送平台而言接口单一,接口函数封装方式固定。并且,本发明还通过使运行平台上的不同任务函数与消息号一一对应,有利于系统扩展,增加应用的灵活性。
附图说明
附图1为本发明不同运行平台间的函数调用的方法的总体流程图;
附图2为本发明中发送平台的工作流程图;
附图3为本发明中接收平台的工作流程图;
附图4为实例2的内存空间存储示意图。
具体实施方式
下面将结合说明书附图及具体实施例对本发明作进一步详细说明。
参考附图1,本实施例所提供的一种不同运行平台间的函数调用的方法,具体包括如下步骤:
(1)将接收平台上的各个任务函数各分配一个消息号,使它们一一对应;
(2)在发送平台上将需要在接收平台上执行的任务函数调用封装成至少包括带消息号的接口函数;
(3)发送平台发送所述接口函数至接收平台;
(4)接收平台执行接收到的接口函数,实现对接收平台上的任务函数调用过程;
(5)接收平台在接口函数执行完成后,返回接口函数执行结果至所述发送平台。
上述的接收平台内具有若干用于执行不同任务的任务函数,并且,一个任务可以具有多个任务函数。
上述的发送平台和接收平台可以为不同系统的不同平台,也可以扩展为同一个系统的不同平台,甚至可以扩展到同一个平台下的不同部分。
上述的发送平台和接收平台在实际运行时,可以互相转换功能,即发送平台成为接收平台,接收平台成为发送平台。
上述的消息号可以采用数字表示。
本实施例中,所述的接口函数可以采用sendcommand(消息号,函数调用的相关参数信息)。其中sendcommand为函数名。
为了更清楚的描述本实施例的具体方法,下面将分成发送平台的工作流程和接收平台的工作流程来描述。
参考图2,发送平台的工作流程具体为:
步骤001,发送平台首先根据需调用的任务函数设置消息号。
具体实施时,可以采用msg表示消息号。
步骤002,判断函数调用是否具有相关参数。
所述函数调用所具有的参数包括:任务函数执行所需要的参数值;任务函数执行结果的存储位置。
判断结果如果是,则执行步骤003;否则跳转至步骤016。
步骤003,在发送平台上开辟一内存空间,用于存储函数调用的所有参数。
具体实施时,可以采用一指针参数*param来指向该内存空间。
对于本领域内的技术人员,很显然的知道具体实施时,也可以不将所有参数存储在一个内存空间内,而只需要发送平台能够获知各个参数的存储地址,并从该地址内顺利读取参数值即可。
步骤004,获取参数所占存储空间大小值以及参数性质。
获取参数所占存储空间大小值的目的是,通知接收平台开辟相应大小的内存空间,以存储参数实体或任务函数执行结果。
具体实施时,可以采用paramsize表示指针参数*param指向的内存空间的大小值。这样,接口函数可表示为:sendcommand(msg,*param,paramsize)。
本实施例中,以参数性质来表示发送平台是否需要发送任务函数执行的参数,以及发送平台是否需要接收任务函数执行的结果。如:
设置参数性质为IN类型,则表示发送平台不需要发送任务函数执行的参数,但需要接收任务函数执行的结果;
设置参数性质为OUT类型,则表示发送平台需要发送任务函数执行的参数,但不需要接收任务函数执行的结果;
设置参数性质为INOUT类型,则表示发送平台需要发送任务函数执行的参数,并且需要接收任务函数执行的结果。
具体实施时,以paramtype表示参数性质,则有paramtype=IN;paramtype=OUT;paramtype=INOUT。
步骤005,判断所述内存空间中的参数是否带有指针,即是否存在指针参数,如果是则执行步骤006,否则跳转至步骤007。
步骤006,获取指针参数的位置信息、指针参数所指向的参数实体所占存储空间大小值,以及指针参数的参数性质。完成后跳转步骤008。
所述的指针参数的位置信息是指该指针参数在内存空间中存储的地址。当内存空间采用指针*param指向时,该位置信息即为指针参数存储地址距离其父指针*param的偏移量。本实施例中以ptrparamoffset表示所述指针参数的偏移量。
所述指针参数的参数性质用于表示发送平台是否需要发送该指针参数指向的参数实体,以及发送平台是否需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。
具体实施时,其设置的方法可以与前述的参数性质的设置方法相同。本实施例中还以ptrparamtype表示指针参数的参数性质,以prtparamsize表示所述指针参数所指向的参数实体所占存储空间大小值。
另外,指针参数所指向的参数实体中还可以包含有指针,因此,各个参数以增加后缀“_n”的形式表示各个指针参数的相关信息。
步骤007,将参数所占存储空间大小值以及参数性质作为函数调用的相关信息,与消息号一起封装到接口函数。完成后跳转到步骤009。
具体实施时,封装后的接口函数表示为:
sendcommand(msg,paramtype,paramsize,0)。
其中为与参数带指针时的接口函数表述形式一致,以0表示参数的偏移量。
步骤008,将参数所占存储空间大小值、参数性质、指针参数的位置信息、指针参数所指向的参数实体所占存储空间大小值,以及指针参数的参数性质作为函数调用的相关信息,与消息号一起封装到所述接口函数。
本实施例中,封装后的接口函数表示为:
sendcommand(msg,paramtype,paramsize,0,
ptrparamtype_1,ptrparamsize_1,ptrparamoffset_1,……
ptrparamtype_n,ptrparamsize_n,ptrparamoffset_n)
步骤009,发送平台发送步骤007或步骤008封装好的接口函数至接收平台。
步骤010,判断函数调用的相关信息中,参数性质或指针参数的参数性质是否为IN类型,即是否发送平台不需要发送任务函数执行的参数,但需要接收任务函数执行的结果;或者是否发送平台不需要发送指针参数指向的参数实体,但需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。如果是,则执行步骤013,否则执行步骤011。
步骤011,判断函数调用的相关信息中,参数性质和/或指针参数的参数性质是否为OUT类型,即是否发送平台需要发送任务函数执行的参数,但不需要接收任务函数执行的结果;和/或是否发送平台需要发送指针参数指向的参数实体,但不需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。如果是,则执行步骤015,否则执行步骤012。
步骤012,函数调用的相关信息中,参数性质和/或指针参数的参数性质为INOUT类型,即发送平台需要发送任务函数执行的参数,且需要接收任务函数执行的结果;和/或发送平台需要发送指针参数指向的参数实体,且需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。因此发送内存空间中的参数,和/或指针参数对应的参数实体至接收平台。再跳转至步骤014。
步骤013,发送平台等待接收任务函数执行结果,并将该结果存储于指定存储空间。完成后跳转至步骤018。
如参数性质为IN类型,则将结果存储于发送平台上存储参数的内存空间中。如指针参数的参数性质为IN类型,则将该结果存储于发送平台上指针参数对应的存储空间内。
本实施例中,当参数中带有指针时,如果paramtype为IN类型,则设置ptrparamtype也为IN类型。
步骤014,发送平台等待接收任务函数执行结果,并将该结果存储于指定存储空间。完成后跳转至步骤018。
当参数性质为INOUT类型,且指针参数的参数性质为OUT类型时,所述指定的存储空间为参数所在的内存空间。
当参数性质为INOUT类型,且指针参数中存在一个或多个指针参数的参数性质为IN类型时,所述指定的存储空间为IN类型的指针参数所指向的存储空间。
步骤015,发送平台发送内存空间中的参数,和/或指针参数对应的参数实体至接收平台。完成后跳转至步骤018。
本实施例中,当参数性质中带有指针时,如果参数性质为OUT类型,则设置指针参数的参数性质也为OUT类型。
步骤016,将消息号封装到接口函数。
本实施例中,封装后的接口函数表示为:sendcommand msg。
步骤017,发送平台发送接口函数至接收平台。
步骤018,发送平台等待接收接口函数的执行结果。
上述步骤中,所述的接口函数的执行结果包括:接口函数执行成功、错误号。所述错误号是指接口函数执行失败后,其导致失败的错误原因,如未能查找到相应的任务函数等等。所述的任务函数的执行结果为任务函数执行后的函数值等。
本领域内的普通技术人员应当得知,上述发送平台的各个步骤的顺序可以作出相应调整,如可判断完参数性质或指针参数性质以后,再发送接口函数;或可先发送需要发送的参数实体,再发送接口函数。因此,上述的步骤仅为本发明的一个较佳实施方案。
参考附图3,接收平台的工作流程具体为:
步骤101,接收平台接收来自发送平台的接口函数。
步骤102,接收平台执行接口函数。
步骤103,自接口函数中获得消息号。
步骤104,查询接口函数中是否封装有任务函数调用的相关参数信息?有则跳转至步骤108,否则执行步骤105。
步骤105,根据消息号查找接收平台上对应的任务函数。
步骤106,是否查找到相应的任务函数?是则执行步骤106,否则跳转至步骤127。
步骤107,执行任务函数,跳转至步骤127。
步骤108,获得参数所占空间大小值paramsize,并根据该值开辟一内存空间。
步骤109,查询接口函数中是否封装有指针参数指向的参数实体所占存储空间大小值ptrparamsize,有则获得该值,并执行步骤110,否则跳转步骤111。
所述的ptrparamsize包括指针参数中还含有指针的情况。
步骤110,根据ptrparamsize值在接收平台上对应开辟子内存空间。
如果指针参数中还含有指针,则相应开辟多个子内存空间。
步骤111,判断接口函数中封装的参数性质paramtype,或指针参数的参数性质ptrparamtype是否为IN类型,即是否发送平台不需要发送任务函数执行的参数,但需要接收任务函数执行的结果;或者是否发送平台不需要发送指针参数指向的参数实体,但需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。如果是,则执行步骤112,否则跳转至步骤117。
步骤112,根据消息号查找对应的任务函数。
步骤113,是否查找到相应的任务函数?是则执行步骤114,否则跳转至步骤****。
步骤114,执行任务函数。
步骤115,将任务函数执行结果存储于相应的内存空间或子内存空间内。
步骤116,发送任务函数执行结果至发送平台,以便发送平台可以将该结果存储于指定的内存空间或子内存空间内。完成后跳转至步骤127。
步骤117,判断接口函数中封装的参数性质paramtype,或指针参数的参数性质ptrparamtype是否为OUT类型,即是否发送平台需要发送任务函数执行的参数,但不需要接收任务函数执行的结果;或者是否发送平台需要发送指针参数指向的参数实体,但不需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。如果是,则执行步骤118,否则跳转至步骤122。
步骤118,接收平台接收来自发送平台的参数,并存储于内存空间中;或接收来自发送平台的指针参数所指向的参数实体,并存储于相应的子内存空间中。
本实施例中,该步骤具体实施为:
当参数中不含指针参数时,接收平台接收来自发送平台的参数,并存储于根据paramsize开辟的内存空间中。
当参数中还含有指针参数时:
首先接收平台接收来自发送平台的参数,并存储于根据paramsize开辟的内存空间中;
其次,根据指针参数的位置信息,本实施例中的ptrparamoffset的值,在内存空间中查找到相应的指针参数,并修改该指针参数的值,使其指向接收平台根据ptrparamsize对应开辟的子内存空间;
最后,接收来自发送平台的指针参数所指向的参数实体,并存储于相应的子内存空间中。
当指针参数所指向的参数实体中还带有指针时,重复前述操作中的后两步,直至所有的指针均正确的指向其对应的子内存空间,从而完成接收平台上地址空间的转换,并正确存储各个指针所指向的参数实体。
步骤119,根据消息号查找对应的任务函数。
步骤120,是否查找到相应的任务函数?是则执行步骤121,否则跳转至步骤127。
步骤121,将步骤118中获得的参数,和/或参数实体用于执行任务函数。完成后,跳转至步骤127。
步骤122,当paramtype和/或ptrparamtype为INOUT类型时,即发送平台需要发送任务函数执行的参数,且需要接收任务函数执行的结果;和/或发送平台需要发送指针参数指向的参数实体,且需要将接收到的任务函数执行结果存储于该指针参数指向的存储空间。因此接收来自发送平台的参数,并存储在内存空间中;或接收来自发送平台的指针指向的参数实体,并对应存储于子内存空间中。
步骤123,根据消息号查找对应的任务函数。
步骤124,是否查找到相应的任务函数?是则执行步骤125,否则跳转至步骤127。
步骤125,将步骤122中获得的参数,和/或参数实体用于执行任务函数。
步骤126,发送任务函数执行结果至发送平台。
步骤127,接口函数执行完毕,产生接口函数执行结果,并返回该结果至发送平台。
本实施例中,步骤122~126的具体实施过程可以为:
当参数中不含指针时,接收平台接收来自发送平台的参数,并存储于根据paramsize开辟的内存空间中。当任务函数执行完成后,接收平台首先将任务函数执行结果存储到该内存空间,然后将此内存空间的数据返回给发送平台。
当参数中还含有指针参数时:
如果参数性质为INOUT类型,且指针参数的参数性质为OUT类型,接收平台首先接收来自发送平台的参数,并存储于根据paramsize开辟的内存空间中。然后根据指针参数的位置信息,本实施例中的ptrparamoffset的值,在内存空间中查找到相应的指针参数,并修改该指针参数的值,使其指向接收平台根据ptrparamsize对应开辟的子内存空间;最后接收来自发送平台的指针参数所指向的参数实体,并存储于根据ptrparamsize开辟的子内存空间中。当指针参数所指向的参数实体中还带有指针时,重复前述操作,直至所有的指针均正确的指向其对应的子内存空间,从而完成接收平台上地址空间的转换,并正确存储各个指针所指向的参数实体。
当任务函数执行完成后,接收平台首先将任务函数执行结果存储于内存空间中非指针参数的存储位置,然后将此内存空间的数据返回给发送平台。
如果参数性质为INOUT类型,且指针参数中存在一个或多个指针参数的参数性质为IN类型时,接收平台同样首先接收来自发送平台的参数,并存储于根据paramsize开辟的内存空间中。其次根据指针参数的位置信息,本实施例中的ptrparamoffset的值,在内存空间中查找到相应的指针参数,保存并修改该指针参数的值,使其指向接收平台根据ptrparamsize对应开辟的子内存空间;当指针参数所指向的参数实体中还带有指针时,重复前述操作,直至所有的指针均正确的指向其对应的子内存空间,从而完成接收平台上地址空间的转换。再次,接收平台查询是否所有的指针参数的参数类型都为IN类型,如果还存在OUT或INOUT类型的指针参数,则需要接收该指针参数对应的参数实体,并存储于对应的子内存空间中。最后,将内存空间中非IN类型指针参数存储位置的参数,以及OUT或INOUT类型的指针参数所指向的参数实体,用于任务函数的执行。
当任务函数执行完成后,接收平台首先将任务函数执行结果存储于IN类型指针参数所指向的子内存空间,然后以保存的原指针参数恢复修改后的指针参数值,并将原指针参数以及子内存空间中的任务函数执行结果返回给发送平台,以使发送平台可以根据指针参数,将任务函数执行结果准确的保存到其所指向的存储位置中。
本领域内的普通技术人员应当得知,上述接收平台的各个步骤的顺序可以调整出多种具体实施方案,该调整只需与发送平台的步骤相一致即可。因此,上述的步骤仅为本发明的一个较佳实施方案。
下面将给出几个本发明的应用实例。
实例1
工作目标:发送平台启动接收平台上的摄像头进行摄像。
工作过程:发送平台发送接口函数:sendcommand 1。其中1为msg。接收平台接收该接口函数,并执行。查找到对应的任务函数OPENCAMERA()。该任务函数调用无需参数。直接执行,执行完成后,返回接口函数执行成功信息给发送平台。
实例2
工作目标:发送平台调用接收平台上的任务函数CAMERACAPTURE(Width,Height),命令接收平台的摄像头捕获一副大小为300字节的图像,并要求获得该图像数据。
工作过程:发送平台首先确定消息号msg=2。然后开辟一指针*param指向的内存空间用于存储该任务函数所需要的宽度值Width、高度值Height,并存储图像数据存储的地址指针*ptrparam。内存空间中的数据如图4所示。其中的每个参数分别占4个字节,*ptrparam的偏移量为8,*ptrparam所指向的存储空间A占300个字节。
因此发送平台首先发送接口函数:
sendcommand(2,INOUT,12,0,IN,300,8);
然后发送该内存空间中所有12个字节的数据。
接收平台首先接收该接口函数。然后开辟一大小为12个字节的内存空间,用于将接收的来自发送平台的12个字节的数据存储于该内存空间中,再开辟一个大小为300字节的子内存空间,并先保存内存空间中的最后4个字节的值,即指针*ptrparam的值,然后修改使其指向子内存空间。接着根据消息号2查找到对应的任务函数CAMERACAPTURE(Width,Height),将内存空间中的头4个字节的数据作为参数Width,中间4个字节的数据作为参数Height,执行任务函数。从而摄像头启动捕获一副指定高度和宽度的图像,并将该图像数据存储入子内存空间中。最后,接收平台需要以保存的*ptrparam的值替代内存空间中最后4个字节的值,并将内存空间中的参数实体以及*ptrparam所指向的图像数据一并发送到发送平台。使发送平台可以根据*ptrparam,将图像数据存储到其指向的存储区间A内。
应当说明的是,前面的描述意图仅是说明性的,而不是为了限制本发明。本领域的普通技术人员可以对在这里公开的实施例的形式和细节进行许多变化,而不脱离本发明的精神和实质。本发明的范围由附加的权利要求限定。
Claims (10)
1、一种不同运行平台间的函数调用的方法,其中接收平台具有若干用于执行不同任务的任务函数,包括如下步骤:
(1)接收平台上各个任务函数各分配一个消息号,使它们一一对应;
(2)在发送平台上将需要在接收平台上执行的任务函数调用封装成至少包括带消息号的接口函数;
(3)发送平台发送所述接口函数至接收平台;
(4)接收平台执行接收到的接口函数,实现对接收平台上的任务函数调用过程;
(5)接收平台在接口函数执行完成后,返回接口函数执行结果至所述发送平台。
2、权利要求1所述方法,其特征在于:所述接口函数仅带消息号,步骤(4)中,所述接收平台执行所述接口函数时,根据消息号查找接收平台上对应的任务函数,然后执行该任务函数。
3、如权利要求1所述方法,其特征在于:函数调用具有相关参数时,步骤(2)中,发送平台存储相关参数,并将函数调用的相关参数信息封装到所述接口函数中。
4、如权利要求3所述方法,其特征在于:所述函数调用的相关参数信息包括参数所占存储空间大小值,所述步骤(4)中,接收平台在执行接口函数时,将根据所述参数所占空间大小值开辟一内存空间。
5、如权利要求4所述方法,其特征在于:所述函数调用的相关参数信息还包括发送平台需发送参数的指令,根据此指令,步骤(3)中,发送平台还将所存储的相关参数发送到接收平台;所述步骤(4)中,接收平台接收所述接口函数,并在开辟好内存空间后,再接收来自发送平台的相关参数,并将该参数存储在所述内存空间中,从而根据消息号查找对应的任务函数,并将参数用于任务函数的执行。
6、如权利要求4所述方法,其特征在于:所述函数调用的相关参数信息还包括发送平台需获得任务函数执行结果,并存储结果于指定存储空间的指令,根据此指令,所述步骤(4)中接收平台开辟的内存空间用于存储任务函数执行结果,并且接收平台还将此执行结果返回到发送平台,所述发送平台接收到所述任务函数执行结果后,将它存储到指定的存储空间中。
7、如权利要求4、5、6中之一所述方法,其特征在于:所述发送平台存储的相关参数中包括指针参数,所述函数调用的相关参数信息中还包括指针参数的位置信息,以及指针参数所指向的参数实体所占存储空间大小值;所述步骤(4)中,接收平台还根据所述指针参数所指向的参数实体所占存储空间大小值,开辟子内存空间。
8、如权利要求7所述方法,其特征在于:所述函数调用的相关参数信息还包括发送平台需发送指针参数所指向的参数实体的指令,根据此指令,步骤(3)中,发送平台还将所述指针参数所指向的参数实体发送到接收平台;所述步骤(4)中,接收平台接收所述接口函数,并在开辟好内存空间以及子内存空间后,再接收来自发送平台的指针参数所指向的参数实体,并将该参数实体存储在所述子内存空间中,从而根据消息号查找对应的任务函数,并将参数实体用于任务函数的执行。
9、如权利要求8所述方法,其特征在于:所述步骤(4)中,接收平台还根据所述指针参数的位置信息,在所述内存空间中的相应位置,填写新的指针参数,使其指向所述子内存空间。
10、如权利要求7所述方法,其特征在于:所述函数调用的相关参数信息还包括发送平台需获得任务函数执行结果,并将该结果存储到某指针参数所指定的存储空间中的指令,根据该指令,步骤(3)中,发送平台还将所述指针参数发送到接收平台,所述步骤(4)中,接收平台还接收该指针参数,并先存储该指针参数的值;其次根据指针参数的位置信息,在所述内存空间中的相应位置,填写新的指针参数,使其指向所述子内存空间;然后在执行完任务函数后,将任务函数的执行结果以及指针参数的值返回给发送平台,所述发送平台将该执行结果存储到所述指针参数所指向的存储空间中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100929625A CN100458702C (zh) | 2005-08-26 | 2005-08-26 | 一种不同运行平台间的函数调用的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100929625A CN100458702C (zh) | 2005-08-26 | 2005-08-26 | 一种不同运行平台间的函数调用的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1731360A true CN1731360A (zh) | 2006-02-08 |
CN100458702C CN100458702C (zh) | 2009-02-04 |
Family
ID=35963721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100929625A Expired - Fee Related CN100458702C (zh) | 2005-08-26 | 2005-08-26 | 一种不同运行平台间的函数调用的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100458702C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950260A (zh) * | 2010-09-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种处理器程序调度方法及装置 |
CN108132816A (zh) * | 2016-12-01 | 2018-06-08 | 腾讯科技(深圳)有限公司 | 应用中实现本地框架层调用的方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778228A (en) * | 1994-08-16 | 1998-07-07 | International Business Machines Corporation | Method and system for transferring remote procedure calls and responses over a network |
US5657447A (en) * | 1995-08-31 | 1997-08-12 | International Business Machines Corp. | Platform-transparent registration and build of stored procedures and user-defined functions |
US6314445B1 (en) * | 1998-08-03 | 2001-11-06 | International Business Machines Coproration | Native function calling |
JP4125055B2 (ja) * | 2002-06-28 | 2008-07-23 | キヤノン株式会社 | ログ取得方法 |
CN1264090C (zh) * | 2002-12-31 | 2006-07-12 | 上海科泰世纪科技有限公司 | 调用构件对象功能的智能指针的封装方法 |
CN1277186C (zh) * | 2003-12-22 | 2006-09-27 | 联想(北京)有限公司 | 软件接口测试方法 |
-
2005
- 2005-08-26 CN CNB2005100929625A patent/CN100458702C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950260A (zh) * | 2010-09-10 | 2011-01-19 | 中兴通讯股份有限公司 | 一种处理器程序调度方法及装置 |
CN108132816A (zh) * | 2016-12-01 | 2018-06-08 | 腾讯科技(深圳)有限公司 | 应用中实现本地框架层调用的方法和装置 |
CN108132816B (zh) * | 2016-12-01 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 应用中实现本地框架层调用的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100458702C (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1731361A (zh) | 一种跨平台函数调用系统 | |
CN1126647C (zh) | 机器人装置 | |
CN1866221A (zh) | 一种软件接口测试方法和装置 | |
CN1473396A (zh) | 修改移动电话机的显示信息的系统和方法 | |
CN101031032A (zh) | 图像拾取设备、曝光控制方法、及计算机程序 | |
CN1859162A (zh) | 自动恢复设备故障的实现方法及系统 | |
CN1922593A (zh) | 汽车的通信系统 | |
CN1942854A (zh) | 屏幕转换控制装置 | |
CN1581142A (zh) | 在客户机-服务器分布式系统中使用的方法、服务器和客户机 | |
CN1641568A (zh) | 基板管理控制器的固件自动配置系统及方法 | |
CN1859616A (zh) | 一种校正终端设备本地时间的方法及终端设备 | |
CN1731360A (zh) | 一种不同运行平台间的函数调用的方法 | |
CN101047894A (zh) | 通信方法及通信装置 | |
CN1869939A (zh) | 一种多线程应用程序访问数据库的方法 | |
CN1474568A (zh) | 多通道数据直接内存访问系统和方法 | |
CN1889048A (zh) | 组件的实现方法以及系统 | |
CN1787611A (zh) | 便携式电子设备、信息处理方法和程序 | |
CN1749966A (zh) | 一种含指针参数的函数在不同运行平台间调用的方法 | |
CN1874301A (zh) | 快速响应ip分片报文的方法和系统 | |
CN1581782A (zh) | 一种实现计费的方法及计费系统 | |
CN1536497A (zh) | 一种实现包过滤的防火墙及其实现包过滤的方法 | |
CN1531280A (zh) | 移动通信方法及系统,服务器,传送装置及移动通信终端 | |
CN1862488A (zh) | 计算机系统中控件与多语言文本动态绑定显示的方法 | |
CN1167230C (zh) | 通信系统、通信控制装置及方法 | |
CN1851678A (zh) | 一种在内存和数字信号处理器之间传送数据的方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090204 Termination date: 20120826 |