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

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

本文简介:选择自 rivershan 的 blog

__cdeclc/c++mfc程序默认使用的调用约定,也可以在函数声明时加上__cdecl关键字来手工指定。采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。__cdecl可以写成_cdecl

 

下面将通过一个具体实例来分析__cdecl约定:

 

vc++中新建一个win32 console工程,命名为cdecl。其代码如下:

 

int __cdecl add(int a, int b);         //函数声明

 

void main()

{

       add(1,2);                                   //函数调用

}

 

int __cdecl add(int a, int b)          //函数实现

{

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

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

go top