实现一个纯C动态库,可以注册回调函数
时间:2011-12-13
来源:互联网
需求描述(因为不太懂,所以描述可能有误,希望大概能表述清楚):
平台:Linux
语言:C(C++也行吧)
方式:共享库
定义函数原型如下(可能有误):
void set_filter
(struct filter *flt, short xml_no, char * p_xml,void (*callback)(short, char *, void *), void *arg);
void get_xml(short xml_no,char * p_xml);
实现功能:
外部调用时可以在上面函数中注册回调函数,这个回调函数的原型:
void filter(short xml_no,char * p_xml);
共享库把p_xml传给回调函数,回调函数对p_xml字符串过滤后又把它交回给共享库,共享库再把它保存在本地缓存,通过get_xml函数供外部调用。
请给些意见,谢谢!
平台:Linux
语言:C(C++也行吧)
方式:共享库
定义函数原型如下(可能有误):
void set_filter
(struct filter *flt, short xml_no, char * p_xml,void (*callback)(short, char *, void *), void *arg);
void get_xml(short xml_no,char * p_xml);
实现功能:
外部调用时可以在上面函数中注册回调函数,这个回调函数的原型:
void filter(short xml_no,char * p_xml);
共享库把p_xml传给回调函数,回调函数对p_xml字符串过滤后又把它交回给共享库,共享库再把它保存在本地缓存,通过get_xml函数供外部调用。
请给些意见,谢谢!
作者: nini7809 发布时间: 2011-12-13
库接口为void set_filter
(struct filter *flt, short xml_no, char * p_xml,void (*callback)(short, char *, void *), void *arg);
回调函数的原型就是void filter(short xml_no,char * p_xml, void *param);注意参数要一致。
当调用set_filter注册回调函数的时候,set_filter函数内部将callback函数指针记录下来,保存到一个全局的函数指针g_pb,其类型就是回调函数的类型,g_pb=callback;
注册完成后,在你需要回调的地方执行g_pb(参数1,参数2,参数3);即可
(struct filter *flt, short xml_no, char * p_xml,void (*callback)(short, char *, void *), void *arg);
回调函数的原型就是void filter(short xml_no,char * p_xml, void *param);注意参数要一致。
当调用set_filter注册回调函数的时候,set_filter函数内部将callback函数指针记录下来,保存到一个全局的函数指针g_pb,其类型就是回调函数的类型,g_pb=callback;
注册完成后,在你需要回调的地方执行g_pb(参数1,参数2,参数3);即可
作者: kongrenxin 发布时间: 2011-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28