����һ��˵������ϢҲ��һ�ֻص�����
���˺ܾõ���Ϣ���Զ�����Ϣ��
�Һ��Ժ�ص�������ɶ����ô�á�������
�Ѻ���ĵ�ַ��Ϊ�����ֻ��callback��һ������, ��ϵͳ������, ���ܵø���ϵͳ��ĺ����ַ���Ķ�. ��Ϣ, WM_*�dz���, MSG����ݽṹ, ������Ϣ�Ĵ��ں���WindowProc���ǻص�����. WindowProcҪ��Windowsϵͳ�ķ�����DispatchMessage������������Ϣ.
WindowProc, DialogProc, TimerProc, EnumWindowsProc, EnumChildProc, EnumDesktopProc, EnumCodePagesProc, HOOKPROC(CallWndProc,
CallWndRetProc, CBTProc, DebugProc, ForegroundIdleProc, GetMsgProc, JournalPlaybackProc, JournalRecordProc, KeyboardProc,
LowLevelKeyboardProc, MouseProc, LowLevelMouseProc, MessageProc, ShellProc,
SysMsgProc)����callback.
"tyh_123" <2...@2.com> wrote in message news:hdt2v1$ks9$1...@www.shinco.com...
> 老板说:由系统调用的是回调函数
> 网上结果:把函数的地址作为参数传递的叫做回调函数
>
> 还有一种说法:消息也是一种回调函数
>
>
> 用了很久的消息和自定义消息。
>
> 我很迷糊回调函数是啥,怎么用。。。。
>
>
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
�������ַֻ��callback�Ĵ�Ҫ����, ��Ҫ������callback�Ĺ���Ҫ��ϵͳ�Դ�callback��Ҫ����д.
����WindowProc�ĵ�ַ��RegisterClassEx/SetClassLongPtr/SetWindowLongPtr���ݸ�ϵͳ, CallWndProc��SetWindowsHookEx���ݸ�ϵͳ, ����С��,
�ؼ���WindowProc/CallWndProc��ôдҪ��SDK�ĵ�˵����д.
������Թ��mfc����֮����Ҳûȥ��������鼮�ˡ�(ȷʵmfc���鼮̫���Ѻ���)
��ֻ�Ǽ�ѧ�������Զ�����Ϣ�͵��ö���......
���仰˵���һ������⡣Ҳ���Ҫ������......
˵ʵ��WindowProc�е���죬�ѵ���һ����Ϣѭ���ĺ���
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
����¿��ԣ��¸����ļ���16�ţ��ͱ�ҵ���Ŀ��⣨˵�����Ǻ����˵ģ�����ѧ�Ĵ���12��ע���DZ��˺��ƺͺ�����...����
����Ҫ��1�·ݲŻ�ȥ�����ˡ�
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
��֪Ϊɶ���е��ų����е�ϲ��mfc���ų�����Ϊmfc���Ų��Ѻã�ûqt��ô�Ѻá�����vc/mfc�飬���dz�ƪ�ϻ������ǿ����ۡ�
ϲ������Ϊ��ide��qt���㡣����ӽ�����˵��qt�����Щ��
��win�£�text����������Щ�Ҷ����ᡣ֮ǰ��Ϊ��ѧϰ���ڣ����ǻ�㣬�����ڶ�����ˡ�
�����ڲ�����ֻ�Ǵ����и����������;��ȥ��qt��qt��mfc_ui�ƺ���ЩСС����𣩣�����������ڣ��Ҹ�ûѧmfc����Ǻܴ�
����qt��Ӱ����Ե���һЩ������Ҳ������
mfc,qt,C++������Ϥ�̶����� �����ߣ� C++,qt,mfc ���ͣ���
ȥ����̵��ڰ�����ˡ�����^_^�������Զ��̱߳Ƚϸ���Ȥ�����Զ��߳�Ӧ������ϤЩ.
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
WindowProc��ָWNDPROC���͵Ĵ��ں���(���?����Ϣ�ĺ���), ��˵���˺ܾõ���Ϣ, ����Ϊ��һ����WindowProc������, ��������һֱ��MFC, MFC��WindowProc��װ�ø�����, �ѹ��㲻֪��.
�̵߳���ں���ThreadProcҲ��callback����, ��CreateThread��MFC��AfxBeginThread��ThreadProc��ַ���ݸ�ϵͳ, ϵͳ����kernel32!BaseThreadStart�ص�ThreadProc��ʼ�������߳�.
DllMain, WinMain, main, Ҳ��callback����, VC�������ϵ��⼸������, �Զ�����Ϊģ����ں���(�������ָ���, Ҫ��#pragma comment(linker,
"/entry:xxx")��/entry:xxx����ѡ��ָ��), ϵͳ����ģ��ʱ�Զ��ص��⼸����ں���(���Ӧ��crt��ں���).
2��������ȥ��ϸ���������������
����Խ��Խ���ˣ������ֿ�ʼ����Ӧ����
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
���ǡ�����ָ�롱 �������������һ����㹻�ˡ�
��һ���ǵ���Call Back��˭Call�����ԡ�����ֻ����Call back�õĶ�һЩ���ˡ�
--
�������Ƚ���google��Ȼ���ٽ���������ѡ�����
"Cen" <C...@rixi.an> д����Ϣ����:1...@rixi.an...
��Ȼ�Ǻ���ԭ�ͣ����е���Լ��������Լ��Ҳ�ǹ涨�õ�ԭ�͵�һ���֣�Windows ����ʹ��
__stdcall ��Ϊ�ص�����ĵ���Լ�����м����� WINAPI��APIENTRY��CALLBACK���������
__stdcall��
������Ĺ��캯����ǻص�����û����ȷ�涨���֣����Ǻ��������������ʽ�涨�����֣����ص������е�������˼��
��Ϣ��ô�ǻص�������Ϣ��msg.message)��Ϊ�������ݸ�ص�����
"tyh_123" <2...@2.com> д����Ϣ����:hdt2v1$ks9$1...@www.shinco.com...
"acc" <jo...@sina.com> д����Ϣ����:heap2c$gip$1...@www.shinco.com...
ֻ��ϧ��how to use���Dz��ᡣ
��˼����˵��ô��ϵͳ�������ҡ�
��Щ��main,���죬���������⡣
"acc" <jo...@sina.com> д����Ϣ news:heapab$h0q$1...@www.shinco.com...
EnumWindows Function
http://msdn.microsoft.com/en-us/library/ms633497(VS.85).aspx
��Σ�ʵ�ֻص�����
http://msdn.microsoft.com/zh-cn/library/843s5s5x.aspx
����ǩ����һ��������������ꡣ���滹������������£�������ҿ�Ӣ�ĵģ��������IJ��á�
"tyh_123" <2...@2.com> д����Ϣ����:heaqn7$k4b$1...@www.shinco.com...
"tyh_123" <2...@2.com> д����Ϣ����:heaqn7$k4b$1...@www.shinco.com...
--
楼上 acc 说的 "Re: 回调函数是什么?" 在某一分钟的第 33 秒被 Moses 所回复;
文件夹 ID 为 58;
原帖 23 行共 1758 字节.
a> 回调函数的意思是,一个系统已经规定好了函数原型,由你自己来定义这个函数,可以完成任意功能。不是你自己设计的函数原型,是别人设计好的原型,将来系统
a> 要调用这个函数。Windows 的窗口过程是回调函数,Windows 知道将
a> 来要调用哪个函数(wndclass.lpfnwndproc),它在适当的时候用适当的参数调用这个函数,而函数体必须由你定义。一些软件(好像是
a> Winamp 吧)的插件就是回调函数。
a> 既然是函数原型,就有调用约定,调用约定也是规定好的原型的一部分,Windows 里面使用
a> __stdcall 作为回调函数的调用约定,有几个宏 WINAPI、APIENTRY、CALLBACK,都是这个
a> __stdcall。
a> 可以把类的构造函数看成是回调函数(没有明确规定名字,但是函数名就是类名,隐式规定了名字)。回调函数有点插件的意思。
a> 消息怎么是回调函数?消息(msg.message)作为函数参数传递给回调函数。
a> "tyh_123" <2...@2.com> 写入消息新闻:hdt2v1$ks9$1...@www.shinco.com...
"Moses" <moses...@gmail.com> д����Ϣ����:heb8hr$htj$1...@www.shinco.com...
�ҵ��������ϢҲ��ϵͳ��������, ����õ���Ϣ����������, Ҳ����ϵͳ�Գ�������˻ص�....
���ĵ��Ǹ��õ�һ����������������ϰ�˵�ģ���DllImport����
��������û���ö�������������ٽ�.net����Щ���Խ��Խ��Ϳ��
Ӣ����������С�ֻ��ϧ���ۺ�Ϳ�ˡ����ٿ����ȣ�ʵ�ڲ����������ʡ�
"acc" <jo...@sina.com> д����Ϣ news:heb62i$bsg$1...@www.shinco.com...
"acc" <jo...@sina.com> д����Ϣ news:heb62i$bsg$1...@www.shinco.com...
"��Ϣ�����Ļص�"����˼����Ϣ��ϵͳ��һ�ֻص�"����", ��Ϣ�Ļص�"����"����ϵͳ����Ϣ��Ϊ�ص�"����"�IJ���, Ȼ��ϵͳ���ûص�"����", ϵͳ���������Ϣ"����"����.
"acc" <jo...@sina.com> wrote:
> Ҳ�ǡ���Ϣ����ص������ˣ���Ϊ�ص�����IJ���
>
> "Moses" <moses...@gmail.com> wrote:
>> �ҵ��������ϢҲ��ϵͳ��������, ����õ���Ϣ����������, Ҳ����ϵͳ�Գ�������˻ص�....
>>
>> "acc" <jo...@sina.com> wrote:
>>> ��Ϣ��ô�ǻص�������Ϣ��msg.message)��Ϊ�������ݸ�ص�����
"Cen" <C...@rixi.an> wrote:
> ��Ϣ, WM_*�dz���, MSG����ݽṹ, ������Ϣ�Ĵ��ں���WindowProc���ǻص�����. WindowProcҪ��Windowsϵͳ�ķ�����DispatchMessage������������Ϣ.
"Moses" <moses...@gmail.com> wrote:
> ��ϢҲ���ǹ���Ļص���...
"acc" <jo...@sina.com> wrote:
> char ��ġ��DZ��顱
"tyh_123" <2...@2.com> wrote:
> 只锟斤拷惜锟斤拷how to use锟斤拷锟角诧拷锟结。
> 锟斤拷思锟斤拷锟斤拷说锟斤拷么锟斤拷系统锟斤拷锟斤拷锟斤拷锟揭★拷
"Cen" <C...@rixi.an> wrote:
> 锟竭程碉拷锟斤拷诤锟斤拷锟絋hreadProc也锟斤拷callback锟斤拷锟斤拷, 锟斤拷CreateThread锟斤拷MFC锟斤拷AfxBeginThread锟斤拷ThreadProc锟斤拷址锟斤拷锟捷革拷系统, 系统锟斤拷锟斤拷kernel32!BaseThreadStart锟截碉拷ThreadProc锟斤拷始锟斤拷锟斤拷锟斤拷锟竭筹拷.
"Cen" <C...@rixi.an> д����Ϣ news:1...@rixi.an...
> �㲻���ù�::AfxBeginThread(PreProcess_Thread,&Thread_info);��ϵͳ���������PreProcess_Thread����?
The Windows Programming Hurdles
Don't Call Me, I'll Call You
"Cen" <C...@rixi.an> д����Ϣ����:1...@rixi.an...
"Cen" <C...@rixi.an> д����Ϣ����:1...@rixi.an...
��Ҫ��֪����ôдһ��ʹ�ûص�����ij������棺
pf();
�����ļ���ijһ��д���������䡣������仰Ӧ����ij�������ڣ������������ļ���Χֱ����һ��������ã��ļ���Χ���ú����и���ӵķ���������һ�����������͵����˸���Ĺ��캯��
���ԣ���ij������ĺ������ڣ������������䣬
pf();
����뷨�ǣ��� pf ִ�в�ͬ�Ĺ��ܡ���ô pf ��һ�������Ǹ������������Ӳ�����ˣ�ÿ��д�� pf()��������䡢����䣬����ȻҲ���䡣�������� pf �Ǹ�����ָ�룬
����δ֪�������ܲ����ۼٶ�����Ҫһ�� void �ͺ���
Ҫ���� pf �ɱ䣬�㲻���Լ����� pf ��ֵ��pf ��ֵ����ͨ��ij�ַ�����ȡ��һ��ʹ�ú���������ԣ���ĺ�����������
int f(void (*pf)())
{
// ...
pf();
// ...
return 0;
}
������涨��һ���ص������������⣬���������
void ��__cdecl*)()
pf ��һ������ָ�룬ָ������һ�� void ��__cdecl*)() ����
��Ҫ�����ûص��������������д��
int f(void (*pf)(int), int n)
{
// ...
pf(n);
// ...
return 0;
}
������涨��һ�� void (__cdecl*)(int) ���͵Ļص�����
��Ȼ��Ҳ���Բ���Ĭ�ϵĵ���Լ�������Լ��涨����Լ������������ʽд�µ���Լ����
int f(void (__stdcall *pf)(int), int n)
{
// ...
pf(n);
// ...
return 0;
}
void __stdcall g(int)
{
// ...
}
int main()
{
f(g, 1);
}
"tyh_123" <2...@2.com> д����Ϣ����:hebajn$mcm$1...@www.shinco.com...
> ���˵�ˣ�3Q
"tyh_123" <2...@2.com> д����Ϣ����:hebaj0$mbd$1...@www.shinco.com...
�ҿ����Ľ����ǣ�
��ʵ�ϣ�������һ������ָ��ȥ����ij��δ֪�ĺ���
��֮���Խ����ص����Ǿ���ϵͳ����ȥ�����ַ��
������������ƺ�������������ö��ˡ�
����������ӣ��һ��ö���顣�տ��Ի�����ͷ�Ρ�������
����� ^_^
"acc" <jo...@sina.com> д����Ϣ news:hed8iq$lul$1...@www.shinco.com...
"Cen" <C...@rixi.an> д����Ϣ����:1...@rixi.an...
"tyh_123" <2...@2.com> д����Ϣ����:hedeq9$7ss$1...@www.shinco.com...
call CreateThread��ȻҲ���ú���ָ��, ��CreateThread��ϵͳ��API, �û�callϵͳ��API��ƽ��, Vc7�г�5708��API(win32SDK, ������DDK), ϵͳcall�û��ĺ�����ټ�һ��, Vc7�г�322��callback(win32SDK, ������DDK), �ʴ��ر��Ϊcallback.
����ϵͳcallback�û���ģʽ, �ƶ��֮, �����Ǻ����callback�û�, �����Dz���ϵͳA��ϵͳcallback����ϵͳB��ϵͳ, �������û�A��ģ��callback�û�B��ģ��.
Microsoft Visual Studio 7\Vc7\lib\win32api.csv
Element Type
104 3rd party DLL function
322 callback function
13 clipboard format
42 collection
46 command
48 command string
87 constant
190 control code
16 data extension
16 DDE transaction
11 device event
30 entry-point function
341 enumeration
3 filter function
5708 function
692 interface
710 macro
1258 message
321 notification message
248 object
2 operator
9 power management event
9 printer escape function
487 property
6 property set
230 provider function
7 registered message constant
28 resource format
40 simple data type
2357 structure
2 union
13383 �ܼ�
"acc" <jo...@sina.com> wrote:
> �ص�������ǻ��£�Ҳ˵��������ص��������ʹ�ú���ָ�룻����ָ�벻��ר�����ڻص�����
>