第一讲 Windows程序内部运行原理.ppt

第一讲 Windows程序内部运行原理

* * Windows 程序内部运行机制 回调函数 凡是由你设计而却由Windows系统调用的函数,统称为Callback函数。这些函数都有一定的类型,以配合Windows的调用操作。 除了窗口过程函数,Windows API还有一些其它的回调函数,例如SetTimer、LineDDA、EnumObject。这种函数会在进行某种行为之后或满足某种状态之时,操作系统自动调用该函数。 * * Windows 程序内部运行机制 小小知识:函数的三种调用方式 __cdecl 是C/C++和MFC程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。 __stdcall 调用约定用于调用Win32 API函数。采用__stdcall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。 __fastcall 约定用于对性能要求非常高的场合。__fastcall

文档评论(0)

1亿VIP精品文档

相关文档