一个函数前面的__fastcall是什么意思
还有__stdcall呢
请指教,谢谢
[解决办法]
指函数的参数以从左到右次序入棧,并且棧的清除工作由函数自己完成。
[解决办法]
_stdcall
按从右至左的顺序压参数入栈,由被调用者把参数弹出栈。对于 "C "函数或者变量,修饰名以下划线为前缀,然后是函数名,然后是符号 "@ "及参数的字节数,如函数int func(int a, double b)的修饰名是_func@12。对于 "C++ "函数,则有所不同。所有的Win32 API函数都遵循该约定。
_fastcall
头两个DWORD类型或者占更少字节的参数被放入ECX和EDX寄存器,其他剩下的参数按从右到左的顺序压入栈。由被调用者把参数弹出栈,对于 "C "函数或者变量,修饰名以 "@ "为前缀,然后是函数名,接着是符号 "@ "及参数的字节数,如函数int func(int a, double b)的修饰名是@func@12。对于 "C++ "函数,有所不同。
未来的编译器可能使用不同的寄存器来存放参数。
其他信息请参考:
http://blog.csdn.net/helenhf/archive/2007/03/16/1531002.aspx