`
isiqi
  • 浏览: 16040416 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

什么是回调函数?

阅读更多
什么是回调函数?

简单说就是,由程序员编写的,给windows系统调用的函数。
也就是说,函数的功能有你定,调用有windows系统调用,不用你关心。你所要做的只是把函数的参数按照规定格式写好,编写好函数
(1) _stdcall调用
  _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈。
  WIN32 Api都采用_stdcall调用方式,这样的宏定义说明了问题:


  #define WINAPI _stdcall

  按C编译方式,_stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形如_functionname@number

(2) _cdecl调用
  _cdecl是C/C++的缺省调用方式,参数采用从右到左的压栈方式,传送参数的内存栈由调用者维护。_cedcl约定的函数只能被C/C++调用,每一个调用它的函数都包含清空堆栈的代码,所以产生的可执行文件大小会比调用_stdcall函数的大。

  由于_cdecl调用方式的参数内存栈由调用者维护,所以变长参数的函数能(也只能)使用这种调用约定。关于C/C++中变长参数(…)的问题,笔者将另文详述。

  由于Visual C++默认采用_cdecl 调用方式,所以VC中中调用DLL时,用户应使用_stdcall调用约定。
  按C编译方式,_cdecl调用约定仅在输出函数名前面加下划线,形如_functionname。

  (3) _fastcall调用
  _fastcall调用较快,它通过CPU内部寄存器传递参数。

  按C编译方式,_fastcall调用约定在输出函数名前面加“@”符号,后面加“@”符号和参数的字节数,形如@functionname@number。

分享到:
评论

相关推荐

    CC++中回调函数初探

     什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。假如你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。

    回调函数回调函数回调函数

    回调函数 回调函数 回调函数 回调函数 回调函数 回调函数

    C语言中的回调函数实例

    在C语言中一般用typedef来为回调函数定义别名(参数名)。 别名通过宏定义typedef来实现,不是简单的宏替换。可以用作同时声明指针型的多个对象。 比如: 代码如下:char *pa,pb;//pa是一个char型指针,但pb是一个...

    C# 实现回调函数

    C# 实现回调函数C# 实现回调函数C# 实现回调函数C# 实现回调函数C# 实现回调函数

    看了就懂的Promise和回调函数

    文章导航回调函数 (callback)什么是回调函数?为什么要使用回调PromisePromise是什么?Promise的三种状态Promise链式调用 回调函数 (callback) 什么是回调函数? 被作为实参传入另一函数,并在该外部函数内被调用,...

    mfc下实现回调函数

    程序实现了在mfc下如何定义一个回调函数,如何使用回调函数,以及如何把类指针传递递给用户回调函数的例程。

    回调函数回调函数回调函数回调函数回调函数回调函数

    回调函数回调函数回调函数回调函数回调函数回调函数

    回调函数被连续执行两次或多次的原因

    回调函数被连续执行两次或多次的原因: 根本原因:回调函数的事件预订【+=】语句被执行了两次或多次。 实例:移动web页的代码页类MobileDefault的Page_Init事件过程,包含的InitializeComponent()连续出现了两次...

    ribbon回调函数大全资料.xlsx

    ribbon回调函数大全资料

    BCB线程中调用主界面的回调函数

    网上的回调函数都是API例子,学习函数指针倒是不错,可是很难让初学者立即应用。常见的情况是辅线程完成某事件后需要“通知”主界面,比如常见的进度条——线程中完成一定的进度后即通知主界面显示到一定的刻度。本...

    C++中回调函数(CallBack)的用法分析

    本文实例分析了C++中回调函数(CallBack)的用法。分享给大家供大家参考。具体分析如下: 如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。 其错误是普通的C++成员函数都隐含了一个传递...

    回调函数步骤

     什么是回调函数?  简而言之,回调函数是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我 们说这是回调函数。回调函数不是由该函数...

    Opengl事件及回调函数

    Opengl中的事件及事件循环,回调函数的介绍,包括鼠标回调函数和键盘回调函数

    matlab串口收发及回调函数编程

    matlab创建com对象。并采用中断方式响应回调函数,功能完整,包括创建初始化及关闭销毁。回调函数的格式,实现方法。

    STM32定时回调函数

    STM32定时回调函数

    使用C语言写的回调函数

    一个使用C语言写的回调函数 包括函数的调用,函数的取消等操作。

    java 回调函数 实现

    java 回调函数 自己模拟实现 使用了接口来完成

    什么是回调函数(最通俗的讲解+实例分析).pdf

    打个比方,有一家旅馆提供叫醒服务,但是要求旅客自己决定叫醒的方法。...而旅客告诉旅馆怎么叫醒自己的动作,也就是把回调函数传入库函数的动作,称为登记回调函数(to register a callback function)。

    delphi 回调函数示例

    delphi 回调函数示例,有分直接下。

    C++回调函数.pdf////C++回调函数.pdfC++回调函数.pdf

    C++回调函数.pdf C++回调函数.pdf C++回调函数.pdf mfc c++

Global site tag (gtag.js) - Google Analytics