关于回调函数

jerrymousenet2 2002-07-28 11:49:36
近几天,我对回调函数的定义及用法感到困惑,请各位给俺解解迷团?

回调函数的定义如下:是我查来的,真正的含义和用法不太明白。

所谓回调函数就是DLL可以调用其他应用程序或另一个DLL的函数.

回调函数就是能对一系列系统内部元素执行给定操作的API函数

普通函数是自己写自己调用,如果函数是自己写,由别人(操作系统)来调用,这个函数就叫回调函数
还有很多定义呢,我想知道它存在的意义所在。
另外回调函数的声明和普通函数是否有区别,


...全文
27 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ikumei 2002-07-29
  • 打赏
  • 举报
回复
声明上没区别.确实,回调函数是自己定义由别人写.
即由调用回调函数的函数决定回调函数的类型.
可以说回调函数的类型是事先就被决定的,但内容可以以后再写.
jerrymousenet2 2002-07-29
  • 打赏
  • 举报
回复
那即是说回调函数就是一个自定义类型的一个过程或函数的变量。
ZengXi 2002-07-29
  • 打赏
  • 举报
回复
最简单的例子,delphi中的事件处理函数就是典型的回调函数
stiwin 2002-07-29
  • 打赏
  • 举报
回复
给你一个例子:


type
TCallBackFunction = function(s: string): integer;
CallMe(s: string): integer;



procedure TestCallBack(CallBackFunction: TCallBackFunction); far; external 'Other';
{ Note that 'other' is a Dll containing the procedure TestCallBack }

function CallMe(s: PChar): integer;
begin
{ what ever you need to do }
CallMe := 1; { What ever you need to return }
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
TestCallBack(CallMe);
end;

type
TMainFunction = function(s: string): integer;
TestCallBack(MainFunc: TMainFunction);
{ in library Other implementation }
TestCallBack(MainFunc: TMainFunction);
var
result: integer;
begin
result:=MainFunc('test');
end;

Delphi_Li 2002-07-29
  • 打赏
  • 举报
回复
同意ikumei的说法,再做一下补充:
1、回调函数由你提供,用来操作你的数据
2、回调函数主要是由别人调用。
3、它和DLL导出函数的主要区别是,DLL是别人主动调用,而回调函数是由你指定别人调用。
jerrymousenet2 2002-07-29
  • 打赏
  • 举报
回复
up
lyfzjl 2002-07-29
  • 打赏
  • 举报
回复
with ikumei!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧