win32 api的函数调用方式是stdcall。

具体调用方式是 先按照从右至左的顺序将函数的参数压入堆栈,然后函数的下一条指令的地址入栈,返回地址(eip),接着是用来寻址局部变量的寄存器入栈(ebp),然后再将函数中的局部变量压入堆栈,接着就执行函数内部的操作了。执行完成函数要返回时,要将堆栈进行恢复,然后ret指令取栈顶的返回地址(eip)并跳到那里去执行,也就是执行函数调用完成后的操作 。
 c/c++ 的函数调用方式是_cdecl ,_cdecl只不过是在函数完成后清栈是由调用者完成的。
另外还有pascal fastcall 调用方式,不过都大同小异了~~

posted on 2009-05-25 15:33  love-windbg  阅读(661)  评论(0编辑  收藏  举报