回调函数是怎么调用的?怎么控制调用顺序?

guguqiaqia 2009-08-18 10:49:02
回调函数通常放在一个库函数的参数里面,请问这个回调函数是在这个库函数返回时候,系统自动调用的吗?
...全文
222 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
chxy85 2009-08-19
  • 打赏
  • 举报
回复
在我看来回调函数和普通函数没啥区别,只是一个是OS调用,一个是自己调用。
OS调用也是在OS的函数里面,因为你已经把函数指针传给OS了,

可以看看

BOOL EnumWindows(
WNDENUMPROC lpEnumFunc,
LPARAM lParam
);
的源码,LZ就明白了,我就是这么明白的,,,,
sunshine502 2009-08-19
  • 打赏
  • 举报
回复
所谓回调函数,就是写给系统用的,满足特定触发条件时,系统就会自动调用。当然你自己也可以调用。。
sunshine502 2009-08-19
  • 打赏
  • 举报
回复
所谓回调函数,就是写给系统用的,满足特定出发条件时,系统就会自动调用。当然你自己也可以调用。。
  • 打赏
  • 举报
回复
做一个完成端口的例子,可能对回调函数有更深入的了解。
f22fbi 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guguqiaqia 的回复:]
我的意思大家也许没有听明白。
假如: 程序语句 myfuncion(fun1);

myfuncion是某个lib库的函数,fun1是个回调函数。

我问在什么情况下这个fun1回调函数会被调用?


[/Quote]
运行myfunction时
churenxh 2009-08-19
  • 打赏
  • 举报
回复
就像写SDK的WndProc函数一样,由系统自动调用!
guguqiaqia 2009-08-19
  • 打赏
  • 举报
回复
说了这么一大堆,谁能举个调用的例子 ,越简单越好。
用户 昵称 2009-08-18
  • 打赏
  • 举报
回复
回调函数就是个函数,顺序当然由主程序控制。
guguqiaqia 2009-08-18
  • 打赏
  • 举报
回复
注册回调我是在哪里查看?怎么注册?
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
要看你自己什么时候注册回调
I_NBFA 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guguqiaqia 的回复:]
我的意思大家也许没有听明白。
假如: 程序语句 myfuncion(fun1);

myfuncion是某个lib库的函数,fun1是个回调函数。

我问在什么情况下这个fun1回调函数会被调用?


[/Quote]

比如qsort(a1,a2,a3,callbackfun), 当然在它排序的时候调用了,
当然是myfunction决定什么时候调用的了.
Fireway2008 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 guguqiaqia 的回复:]
我的意思大家也许没有听明白。
假如: 程序语句 myfuncion(fun1);

myfuncion是某个lib库的函数,fun1是个回调函数。

我问在什么情况下这个fun1回调函数会被调用?


[/Quote]

当你响应fun1这个函数对应的消息后,系统通知其进行调用。
但事前必须注册或定义好消息,随条件触发响应。
zhouchuan111 2009-08-18
  • 打赏
  • 举报
回复
回调函数是操作系统调用的
至于什么时间调用,是OS的问题,这个不能确定
guguqiaqia 2009-08-18
  • 打赏
  • 举报
回复
我的意思大家也许没有听明白。
假如: 程序语句 myfuncion(fun1);

myfuncion是某个lib库的函数,fun1是个回调函数。

我问在什么情况下这个fun1回调函数会被调用?

I_NBFA 2009-08-18
  • 打赏
  • 举报
回复
windows的回调函数一般是做通知用, 最长见的就是WndProc, 系统一但得到消息就要通知程序,
怎么通知? 调用你传给系统的WndProc就可以了.
至于什么时候调用你要看对方什么时候需要调用了.
fandh 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 guguqiaqia 的回复:]
回调函数通常放在一个库函数的参数里面,请问这个回调函数是在这个库函数返回时候,系统自动调用的吗?
[/Quote]
这样应该差不多了!
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 guguqiaqia 的回复:]
回调函数通常放在一个库函数的参数里面,请问这个回调函数是在这个库函数返回时候,系统自动调用的吗?
[/Quote]
你指的什么回调?还有这种函数返回的时候系统自动调的回调吗?
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
回调函数是由系统帮你调用的,需要调用的时候,你向系统注册回调,如果这个回调和库没关系可独立存在的话,库函数返回后,此回调函数仍在运行。
hhwei1985 2009-08-18
  • 打赏
  • 举报
回复
UP
oyljerry 2009-08-18
  • 打赏
  • 举报
回复
回调函数是注册进去的,当对应的模块希望调用的时候,就会内部调用你这个回调...
加载更多回复(4)

16,548

社区成员

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

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

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