1、_cdecl和_stdcall的区别:
1) _cdecl调用按照从右往左的顺序将参数入站,由调用者把参数弹出栈
_stdcall调用按照从右往左的顺序将参数入站 ,由被调用者把参数弹出栈
2)_stdcall 和_cdecl对函数名最终生成符号的方式不同:_stdcall调用约定在输出函数名前加下划线,后面为“@”和参数的字节数,形如“_funname@number;而_cdecl调用约定在仅输出函数名前加下划线,形如_funname.
注:如果通过VC++编写的DLL欲被其他语言编写的程序调用,应将函数的调用方式声明为__stdcall方式,WINAPI都采用这种方式,而C/C++缺省的调用方式却为__cdecl。若采用C编译方式(在C++中需将函数声明为extern "C")