论坛: 编程破解 标题: 关于MFC中call back函数调用的问题 复制本贴地址    
作者: gengyong [gengyong]    论坛用户   登录
在MFC中,有一条预编译语句:
#if MFC_VER>8.0000
#define CALLBACK stdcall
#define WINAPI   stdcall
#define APIENTRY stdcall
//...
#end if
我想问,如此的话,CALLBACK调用声明与普通函数调用声明相同,这个CALLBACK还有什么意义?
以前在windows中,凡是以CALLBACK声明的函数,其调用过程:
 push edi
 push esi
 push ebx
...
 pop ebx
 pop esi
 pop edi
因为CALLBACK函数也可能会被操作系统调用,保存并恢复esi,edi,ebx这3个寄存器是操作系统的需要,操作系统在其中保存了一些系统信息.这是为什么要将某些函数(比如窗口函数)声明为CALLBACK函数的缘故.
但是,MFC中这条语句让我大起疑心,既然大家都是stdcall,那么系统如何回调???

地主 发表时间: 08/19 22:15

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号