|
![]() | 作者: 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号