注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山歌

微信公众号:Jack-Xiaoshan

 
 
 
 
 

日志

 
 

在无函数声明的情况下运行时动态调用DLL函数  

2009-12-03 11:30:31|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
在编写代码之前,需要了解C++的函数调用约定。C++允许下面几种调用约定: __cdecl, __stdcall, __fastcal,__thiscall和__clrcall。
  • __thiscall用于调用类成员函数,用于访问对象成员函数
  • __clrcall为托管C++所用,用于.Net
  • __fastcall则是将参数放在寄存器中传递,  通过寄存 器传递参数,需要函数调用者和被调用函数的配合才能实现,由于我们只能控制函数调用者,因此__fastcall的行为不能确定,实际上__fastcall在程序中较少使用,更不会出现在dll的导出函数中。
  • __cdecl和__stdcall。__cdecl是C/C++的默认调用约定,即函数调用者在调用函数时先将函数的所有参数按从右到左 的顺序依次压入堆栈,然后调用函数,最后函数调用者要负责将所有参数弹出堆栈。而__stdcall与__cdecl的不同之处在于__stdcall是 由被调用函数将参数弹出堆栈的。
  评论这张
 
阅读(21)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017