什么是回调函数,它和一般的函数有什么差别?

solarhe 2004-08-31 08:31:50
这里的CALLBACK是什么意思?
还有自定义的消息函数返回的LRESULT是种什么样的类型?
...全文
562 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
sad_4978 2005-03-04
  • 打赏
  • 举报
回复
call back函数,意思是指“在你的程序中,被Windows系统调用”的函数。这些汉书虽然有你设计,但是永远不会也不该被你调用,它们是为Windows系统准备的。
askppp 2004-09-28
  • 打赏
  • 举报
回复
从理解上而言,上面的朋友都说的很清楚了

实质上而言:
CALLBACK=WINAPI=__stdcall

__stdcall 细节
__stdcall 函数的参数被从右到左推送到堆栈上,被调用函数在返回之前从堆栈中弹出这些参数。

普通函数默认__cdecl

也就是将函数参数推送到堆栈上的顺序不同罢了。
onedayonehole 2004-09-28
  • 打赏
  • 举报
回复
这样说你看能不能明白,
window本身就是一个大的程序循环,

在循环过程当中,如果遇到事先定义的事件,window就会调用你的函数,
你的这种函数就是回调函数,
它和一般的不太一样,
是由系统调用的
hjf1223 2004-09-28
  • 打赏
  • 举报
回复
回调函数其实跟普通函数是一样的,只不过调用者不是你,而是系统,系统会根据你设计的回调的函数完成相关的工作。比如,你创建一个窗口时,你要设计一个回调函数,告诉它窗口的消息如何映射;再如创建一个定时(NUL器时,用SetTimer(L,1000,TimerProc);这个TimerProc就是一个回调函数,你可以这个函数里写一些你要的操作,它就会在1秒内重复做一样的事。
hehou 2004-09-28
  • 打赏
  • 举报
回复
晕~~程序员怎都学得这么抽象了.
我写函数,系统调用--->这句话不是没说吗
求学的肯定知道这么回事,但要讲如何去理解这个函数.与其它有什么区别.这是关键啥.

我是不懂.只有顶一下了.
大家都说由系统"自动"调用,其中的机制又是怎样.我也想知道哦
UDX协议 2004-09-25
  • 打赏
  • 举报
回复
我的理解,回调函授既可以是自己调用也可以是操作系统调用。至于哪种调用方式,都是可行的,只是用在不同的场合。
ehom 2004-09-25
  • 打赏
  • 举报
回复
这种问题居然只有两位朋友说对了,汗一个~~~
  • 打赏
  • 举报
回复
个人观点:
回调函数,用户写系统调用的函数。
系统:广义,可能是函数、程序、操作系统,不局限于windows
用户:广义,与系统对应。
superhandsome 2004-09-25
  • 打赏
  • 举报
回复
你自己写。。却被操作系统调用。。。。
kugou123 2004-09-25
  • 打赏
  • 举报
回复
回调函数就是你负责写函数,系统负责自动调用的函数。
hzhxxx 2004-09-25
  • 打赏
  • 举报
回复


看来这个问题还要继续


sundapeng980501 2004-09-25
  • 打赏
  • 举报
回复
最简单的说就是由你编写,但由Windows调用的函数.
jdzwq 2004-09-24
  • 打赏
  • 举报
回复
不要被CALLBACK迷惑了,回调函数并非只用于WINDOWS系统调用,在C/C++中,可以自由定义回调函数,CALLBACK只是约定了传参方式(__stdcall),看两种回调函数定义:
typedef int (*some_cdecl_callfunc)(...) 默认采用__cdecl方式传参
typedef CALLBACK int (*some_stdcall_callfunc)(...) 采用__stdcall方式传参
lsaturn 2004-09-24
  • 打赏
  • 举报
回复
而且约定回调函数都是_stdcall,由函数自己来平栈,这也是合理的,因为系统本身并不知道函数的堆栈情况,只知道函数的指针
DoubleJiang 2004-09-24
  • 打赏
  • 举报
回复
回调函数简单的说就是在每个时间要用的函数,但是当时没有函数体,
相当于纯虚函数!
cn0cn 2004-09-24
  • 打赏
  • 举报
回复
回调模式

http://i.vwind.com/dev/show.php?id=224&dirid=8&page=
Jarrylogin 2004-09-12
  • 打赏
  • 举报
回复
回调函数的形式是规定好的(就是返回值,形参数等等),实质是函数指针,传给调用函数的参数是函数指针
落入凡间的猪 2004-09-12
  • 打赏
  • 举报
回复
你编写,但由Windows调用
solarhe 2004-09-04
  • 打赏
  • 举报
回复
谢谢诸位!我再看看!
Kudeet 2004-08-31
  • 打赏
  • 举报
回复
最简单的说就是由你编写,但由Windows调用的函数

其实跟一般的函数没有什么特别区别,只是回调函数的形式是规定好的(就是返回值,形参数等等),你可以改变的值就是函数的名称:)

回调函数不用你去直接调用,而是由调用这个回调函数的函数来调用

http://search.csdn.net/Expert/topic/792/792818.xml?temp=.6934015
加载更多回复(2)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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