📄 subject_28052.htm
字号:
<p>
序号:28052 发表者:DM 发表日期:2003-01-17 14:24:21
<br>主题:调用约定(__cdecl*,__fastcall,__stdcall)有何不同??
<br>内容:请教各位高手:调用约定(__cdecl*,__fastcall,__stdcall)有何不同?最好能够帮忙举例说明一下。谢谢!谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:未出手的飞刀 回复日期:2003-01-17 14:34:53
<br>内容:<BR>在由调用过程还是由被调用过程“恢复现场”上有区别。<BR><BR>void beCalled(int i,int j) //被调用过程<BR>{<BR>}<BR><BR>void caller() //调用过程<BR>{<BR> beCalled(8,9) ;<BR>}<BR><BR>分别把(__cdecl*,__fastcall,__stdcall)加在beCalled上然后看相应的在线汇编代码就知道区别了。<BR><BR>msdn也有详细说明
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:DM 回复日期:2003-01-17 14:47:04
<br>内容:未出手的飞刀:<BR> 这个方法我试了好久,还是看不出区别。在线汇编的参数的堆栈压入的次序及现场恢复还是无区别。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:DM 回复日期:2003-01-17 15:03:25
<br>内容:未出手的飞刀:<BR> 对不起,我刚才在线汇编时没有仔细看恢复现场是否__stdcall函数被调用后现场会被恢复,而__cdecl,__fastcall不恢复现场。而与参数压入堆栈次序没有关系,你说对吗?<BR><BR>__stdcall<BR>16: tt(aa,bb,cc);<BR>0040109D mov eax,dword ptr [ebp-0Ch]<BR>004010A0 push eax<BR>004010A1 mov ecx,dword ptr [ebp-8]<BR>004010A4 push ecx<BR>004010A5 mov edx,dword ptr [ebp-4]<BR>004010A8 push edx<BR>004010A9 call @ILT+10(tt) (0040100f)<BR>004010AE add esp,0Ch 恢复现场<BR>17: return 0;<BR><BR>__cdecl,__fastcall<BR>16: tt(aa,bb,cc);<BR>0040109D mov eax,dword ptr [ebp-0Ch]<BR>004010A0 push eax<BR>004010A1 mov edx,dword ptr [ebp-8]<BR>004010A4 mov ecx,dword ptr [ebp-4]<BR>004010A7 call @ILT+20(tt) (00401019)<BR>无恢复现场<BR>17: return 0;<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2003-01-17 16:18:20
<br>内容:<BR>你的分析对了,但观察到的结果和我不一样。<BR>__stdcall 和 __cdecl相反,是你看错了把<BR><BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:dr0 回复日期:2003-01-17 20:57:01
<br>内容:飞刀工作找的咋样了?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2003-01-17 23:51:59
<br>内容:<BR>定了2家,还在找啊,准备年后就上班吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -