[发明专利]一种为静态回调函数添加动态参数的方法及相关实现无效
申请号: | 200910091692.4 | 申请日: | 2009-08-28 |
公开(公告)号: | CN101692206A | 公开(公告)日: | 2010-04-07 |
发明(设计)人: | 黄朝兴 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 程立民;张颖玲 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 静态 调函 添加 动态 参数 方法 相关 实现 | ||
1.一种为静态回调函数添加动态参数的方法,其特征在于,包括:
在原始回调函数的基础上定义新的回调函数,在新的回调函数中添加动态参数;
在回调函数使用者调用所述新的回调函数时,通过执行参数注入代码,在新的回调函数执行之前,将添加的动态参数压入到堆栈中,在新的回调函数执行时,从堆栈中获取所述添加的动态参数,将其作为有效参数进行使用。
2.根据权利要求1所述的方法,其特征在于,所述方法具体为:
A1、在原始回调函数的基础上定义新的回调函数,在新的回调函数的参数列表中添加所述动态参数;
A2、建立参数注入代码,在参数注入代码中通过汇编代码将添加的动态参数压入堆栈,并把新的回调函数的地址也压入堆栈;
A3、将参数注入代码段地址作为系统调用新的回调函数的函数地址入口,在系统调用所述新的回调函数时,首先执行所述参数注入代码段,然后再执行所述新的回调函数。
3.根据权利要求1所述的方法,其特征在于,所述动态参数的个数为一个或多个。
4.一种定时器类的实现方法,其特征在于,包括:
在原始定时器(timer)回调函数的基础上定义新的定时器回调函数,在新的定时器回调函数中添加当前类对象的指针(this);
在定时器回调函数使用者调用所述新的定时器回调函数时,通过执行参数注入代码,在所述新的定时器回调函数执行之前,将当前类对象的指针作为参数压入到堆栈中,在所述新的定时器回调函数执行时,从堆栈中获取所述当前类对象的指针,将其作为有效参数进行使用。
5.根据权利要求4所述的方法,其特征在于,所述方法具体为:
B1、在原始定时器回调函数的基础上定义新的定时器回调函数,在新的定时器回调函数的参数列表中添加所述当前类对象的指针;
B2、建立参数注入代码,在参数注入代码中通过汇编代码将添加的当前类对象的指针作为参数压入堆栈,并把新的定时器回调函数的地址也压入堆栈;
B3、将参数注入代码段地址作为系统调用新的定时器回调函数的函数地址入口,在系统调用所述新的定时器回调函数时,首先执行所述参数注入代码段,然后再执行所述新的定时器回调函数。
6.根据权利要求5所述的方法,其特征在于,步骤B1中,除在新的定时器回调函数的参数列表中添加当前类对象的指针外,还可添加其它动态参数,相应地,在步骤B2中,所述参数注入代码将当前类对象的指针及其它动态参数依次压入堆栈。
7.一种窗体子类化的方法,其特征在于,包括:
在原始窗体事件回调函数的基础上定义新的窗体事件回调函数,在新的窗体事件回调函数中添加当前类对象的指针(this);
在窗体事件回调函数使用者调用窗体事件回调函数时,通过执行参数注入代码,在所述新的窗体事件回调函数执行之前,将当前类对象的指针(this)作为参数压入到堆栈中,在所述新的窗体事件回调函数执行时,从堆栈中获取所述当前类对象的指针,将其作为有效参数进行使用。
8.根据权利要求7所述的方法,其特征在于,所述方法具体为:
C1、在原始窗体事件回调函数的基础上定义新的窗体事件回调函数,在新的窗体事件回调函数的参数列表中添加所述当前类对象的指针;
C2、建立参数注入代码,在参数注入代码中通过汇编代码将添加的当前类对象的指针作为参数压入堆栈,并把新的窗体事件回调函数的地址也压入堆栈;
C3、将参数注入代码段地址作为系统调用新的窗体事件回调函数的函数地址入口,在系统调用所述新的窗体事件回调函数时,首先执行所述参数注入代码段,然后再执行所述新的窗体事件回调函数。
9.根据权利要求8所述的方法,其特征在于,步骤C1中,除在新的窗体事件回调函数的参数列表中添加当前类对象的指针外,还可添加其它动态参数,相应地,在步骤C2中,所述参数注入代码将当前类对象的指针及其它动态参数依次压入堆栈。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910091692.4/1.html,转载请声明来源钻瓜专利网。