回调函数
来源:互联网 发布:javascript英文文献 编辑:程序博客网 时间:2024/05/23 18:53
维基百科的解释:
In computer programming, a callback is a reference to a piece of executable code that is passed as an
argument to other code. This allows a lower-level software layer to call a subroutine (or function) defined
in a higher-level layer.
翻译:
在计算机编程中,一个回调(函数)是一个对一段可执行代码的引用,作为参数传递给其他的代码。这允许软件底层去调用在高层定义的子例程(或函数)
下面创建了一个sort.dll的动态链接库,它导出了一个名为CompareFunction的类型
typedef int (__stdcall *CompareFunction)(const byte*, const byte*) //它就是回调函数的类型。
1 回调函数和Dll里面的普通导出函数有什么区别?
2 可否认为回调函数和Dll里面的普通导出函数是一样的?
3 如何实现DLL里面的回调函数?
4 轻松使用自己的回调函数
函数是你定义的,函数体里面该执行什么操作也是你规定。
但是这个函数却不需要你显式的调用(当然也可以)。
dll与exe之间的通讯方式有很多种,可以采用回调函数的方法实现:
简单实现的dll与exe之间的通讯, 其实就是利用了dll的导出函数,先向dll传递一个回调函数的地址,供dll和exe的通讯。exe和dll的通讯:exe直接执行dll导出函数即可。
若A.dll里面在直接使用另一个B.dll里面的函数,则A.dll主动。
(exe与exe之间的通讯:共享内存)
1 声明回调函数类型 typedef int (WINAPI *pFCALLBACK)(int Param1, int Param2);2 声明函数原形(在Exe端) int WINAPI CallBackFunc(int Param1,int Param2)3 函数实现(在Exe端)int CallBackFunc(){Connect();KkRequest();DdRequest();return 0;}//在动态库里面定一个接口,如下,然后在program里面调用这个接口,同时传递你的回调函数指针externc "C" int Start( char *buf1, char *buf2, pFCALLBACK *pFunction ){int Param1, int Param2; ... pFunction( Param1, Param2 ); ... return 0;}
Exe端主动
LoadLibrary( A.dll )
Use Start( pCallBackFunc ) //将先使用A.dll里面的函数,再使用Exe端的函数
FreeLibrary( A.dll )
http://www.programfan.com/article/163.html
- .NET 回调函数
- 回调函数
- 回调函数
- 回调函数概念
- 回调函数
- 回调函数
- 回调函数
- 回调函数 相关
- delphi 回调函数
- 回调函数
- 回调函数
- 回调函数学习
- 回调函数
- 关于回调函数
- 透析回调函数
- 回调函数
- 什么是回调函数
- 回调函数
- java 8种排序原理
- 241-字母统计
- 项目3 带姓名的成绩单
- iphone调用系统电话、浏览器、地图、邮件等
- 第15周项目2 输出杨辉三角
- 回调函数
- IOS中输入框被软键盘遮挡的解决办法
- RadioButton总结
- arch与gentoo对比
- CString、TCHAR*、char*转换
- WinCE平台的程序编译到Win32平台下运行
- 《REWORK》启示录 招聘笔杆子——程序员为什么值得写博客
- C# Stream作用
- myeclipse配置hadoop开发环境