• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

guguqiaqia 2009-08-18 10:49:02
回调函数通常放在一个库函数的参数里面,请问这个回调函数是在这个库函数返回时候,系统自动调用的吗?
...全文
145 点赞 收藏 24
写回复
24 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
说了这么一大堆,谁能举个调用的例子 ,越简单越好。
回复
回调函数就是个函数,顺序当然由主程序控制。
回复
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
回调函数是注册进去的,当对应的模块希望调用的时候,就会内部调用你这个回调...
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2009-08-18 10:49
社区公告

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