我在程序中定义了一个回调函数,发现可以当作普通函数用!!!
难道回调函数主要就是当作钩子函数??
9 个解决方案
#1
有不同的 回调函数只能访问静态变量, 除非用参数
Windows的消息都是回调函数方式
Windows的消息都是回调函数方式
#2
这是用途,不是区别。回调用途多着呢。
与普通函数的确没内在的区别,或者说,区别就是函数指针的灵活性。
与普通函数的确没内在的区别,或者说,区别就是函数指针的灵活性。
#3
普通函数是由程序员调用的,回调函数是由windows调用的,
#4
窗口函数都是回调函数
#5
http://www.flounder.com/callbacks.htm
#6
回调函数是种常用手段,它其实是你写好的一个函数,并期待别人或者是系统在合适的时候调用它。举个例子,用 API 控制 Modem 拨号,如果拨号函数简单地设计成这样:
bool Dial(...) // 发起拨号,拨通后返回
Modem 不是一拨就通的,你的程序就会在拨号时陷入停滞,无法响应其它任何事件。所以这个函数被设计成这样(只是例子哦,不是说真的有这样的函数,实际的函数你可以去看看 MSDN 中对 RasDial 的描述):
void Dial(DIAL_CALLBACK* pConnected ...)
这里的 pOnConnected 参数就是要你传入一个 CALLBACK 函数指针,从而拨通时系统会自动调用你的这个函数。此时你知道已经拨通了,可以做一些处理。
够明白了吧????
bool Dial(...) // 发起拨号,拨通后返回
Modem 不是一拨就通的,你的程序就会在拨号时陷入停滞,无法响应其它任何事件。所以这个函数被设计成这样(只是例子哦,不是说真的有这样的函数,实际的函数你可以去看看 MSDN 中对 RasDial 的描述):
void Dial(DIAL_CALLBACK* pConnected ...)
这里的 pOnConnected 参数就是要你传入一个 CALLBACK 函数指针,从而拨通时系统会自动调用你的这个函数。此时你知道已经拨通了,可以做一些处理。
够明白了吧????
#7
拜托!这种问题问之前搜索一下以前的帖子ok?
怎么这么多人就喜欢在这种概念题上纠缠不清呢??!!
想知道__stdcall、__cdecl、__fastcall、__thiscall、PASCAL等修饰符的区别,就回去好好看看汇编!看看各个函数在编译的时候压栈动作是怎样的!
怎么这么多人就喜欢在这种概念题上纠缠不清呢??!!
想知道__stdcall、__cdecl、__fastcall、__thiscall、PASCAL等修饰符的区别,就回去好好看看汇编!看看各个函数在编译的时候压栈动作是怎样的!
#8
sorry,犯了一个概念错误:__fastcall没有压栈动作。抱歉。
#9
callback 没有me指针
#1
有不同的 回调函数只能访问静态变量, 除非用参数
Windows的消息都是回调函数方式
Windows的消息都是回调函数方式
#2
这是用途,不是区别。回调用途多着呢。
与普通函数的确没内在的区别,或者说,区别就是函数指针的灵活性。
与普通函数的确没内在的区别,或者说,区别就是函数指针的灵活性。
#3
普通函数是由程序员调用的,回调函数是由windows调用的,
#4
窗口函数都是回调函数
#5
http://www.flounder.com/callbacks.htm
#6
回调函数是种常用手段,它其实是你写好的一个函数,并期待别人或者是系统在合适的时候调用它。举个例子,用 API 控制 Modem 拨号,如果拨号函数简单地设计成这样:
bool Dial(...) // 发起拨号,拨通后返回
Modem 不是一拨就通的,你的程序就会在拨号时陷入停滞,无法响应其它任何事件。所以这个函数被设计成这样(只是例子哦,不是说真的有这样的函数,实际的函数你可以去看看 MSDN 中对 RasDial 的描述):
void Dial(DIAL_CALLBACK* pConnected ...)
这里的 pOnConnected 参数就是要你传入一个 CALLBACK 函数指针,从而拨通时系统会自动调用你的这个函数。此时你知道已经拨通了,可以做一些处理。
够明白了吧????
bool Dial(...) // 发起拨号,拨通后返回
Modem 不是一拨就通的,你的程序就会在拨号时陷入停滞,无法响应其它任何事件。所以这个函数被设计成这样(只是例子哦,不是说真的有这样的函数,实际的函数你可以去看看 MSDN 中对 RasDial 的描述):
void Dial(DIAL_CALLBACK* pConnected ...)
这里的 pOnConnected 参数就是要你传入一个 CALLBACK 函数指针,从而拨通时系统会自动调用你的这个函数。此时你知道已经拨通了,可以做一些处理。
够明白了吧????
#7
拜托!这种问题问之前搜索一下以前的帖子ok?
怎么这么多人就喜欢在这种概念题上纠缠不清呢??!!
想知道__stdcall、__cdecl、__fastcall、__thiscall、PASCAL等修饰符的区别,就回去好好看看汇编!看看各个函数在编译的时候压栈动作是怎样的!
怎么这么多人就喜欢在这种概念题上纠缠不清呢??!!
想知道__stdcall、__cdecl、__fastcall、__thiscall、PASCAL等修饰符的区别,就回去好好看看汇编!看看各个函数在编译的时候压栈动作是怎样的!
#8
sorry,犯了一个概念错误:__fastcall没有压栈动作。抱歉。
#9
callback 没有me指针