DLL中调用约定和名称修饰(一)[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 rivershan 的 blog

       return (a + b);

}

 

函数调用处反汇编代码如下:

 

;add(1,2);

push                     2                                        ;参数从右到左入栈,先压入2

push        1                                         ;压入1

call          @ilt+0(add) (00401005)    ;调用函数实现

add           esp,8                                   ;由函数调用清栈

2__stdcall

__stdcall调用约定用于调用win32 api函数。采用__stdcal约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。__stdcall可以写成_stdcall

本文关键:DLL、调用约定、名称修饰、Calling Convention、Name Decoration、Name Mangling
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top