`
isiqi
  • 浏览: 16366378 次
  • 性别: 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 语言回调函数详解.pdf

    什么是回调函数? 回调函数,从字面上理解,可以分为两部分:**“回”** 和 **“调”**。所谓“回”,指的是函数执行完毕后返回调用处的过程;而“调”则指再次执行调用的动作。综合来看,回调函数是指在程序的...

    VC中回调函数(callback)深入解析

    什么是回调函数? ---------------- 回调函数是一个由开发者编写的函数,它的地址被传递给另外一个函数,以便在特定的时间点被调用。例如,在 Windows 编程中,Hook 回调函数MouseProc、GetMsgProc 和 EnumWindows ...

    mfc下实现回调函数

    在Microsoft Foundation Classes (MFC) 中,回调函数是一种特殊类型的函数,它允许用户代码与库或操作系统进行交互,尤其是在处理异步事件时。回调函数通常作为参数传递给其他函数,以便在特定事件发生时调用。在MFC...

    C语言回调函数详解及实例.docx

    什么是回调函数? ---------------- 回调函数是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。可以将"回调函数"在...

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

    回调函数在计算机编程中是一种非常重要的机制,它允许我们将一个函数作为参数传递给另一个函数,以便在特定条件或事件发生时由被调用的函数执行。这种设计模式在很多编程语言中都有应用,如C、C++、JavaScript、...

    使用C语言写的回调函数

    回调函数在C语言中是一种非常重要的编程机制,它允许我们将一个函数的地址作为参数传递给另一个函数,由这个函数在适当的时候调用我们传入的函数。这种模式在处理异步事件、信号处理、排序算法以及其他需要在特定...

    osg回调函数的使用

    【osg回调函数的使用】 OpenSceneGraph(OSG)是一个强大的3D图形库,它提供了丰富的功能来构建复杂的三维场景。在OSG中,回调函数是实现用户自定义行为的关键工具,它们允许开发者在特定事件发生时执行特定的代码...

    回调函数的使用

    #### 二、什么是回调函数? 回调函数本质上是一个通过函数指针调用的函数。当你将一个函数的指针(即地址)作为参数传递给另一个函数,并且这个指针用于调用它所指向的函数时,我们称这个过程为回调。简单来说,回...

    c++builder回调函数例子

    首先,让我们理解什么是回调函数。回调函数是程序员提供给另一个程序(如DLL)的函数指针,这样在需要时,这个程序可以调用该函数。在C++ Builder中,我们通常通过声明函数指针类型来定义回调函数,并将其作为参数...

    C# 实现回调函数

    首先,我们需要理解什么是回调函数。回调函数本质上就是一个函数引用,可以在其他函数执行过程中或结束后被调用。在C#中,你可以通过几种方式来实现回调: 1. **委托(Delegate)**:C#中的委托是类型安全的函数...

    delphi Dll的回调函数

    首先,我们需要理解什么是回调函数。回调函数是一种设计模式,其中函数A作为参数传递给函数B,然后在函数B的执行过程中被调用。在Delphi的DLL上下文中,回调函数通常用于处理异步操作或者在DLL内部完成某些计算后...

    PB 回调函数,多线程

    标题中的“PB 回调函数,多线程”指的是在编程中使用ProtoBuf(Protocol Buffers,简称PB)实现回调函数来处理多线程应用程序。ProtoBuf是Google开发的一种数据序列化协议,常用于结构化数据的存储和交换,它可以...

    java 回调函数 实现

    在Java编程中,回调函数是一种设计模式,它允许一个对象在另一个对象执行特定操作后接收通知或进行处理。这种机制通常用于事件驱动编程或者异步编程中,使得代码能够响应某些特定事件的发生。在给定的场景中,我们...

    Android回调函数的例子

    在编程领域,回调函数是一种设计模式,它允许我们定义一个函数,这个函数可以在另一个函数执行完毕后被调用。在Android开发中,回调函数扮演着至关重要的角色,尤其是在处理异步操作、事件监听以及用户交互时。本...

    看了就懂的Promise和回调函数

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

    动态库回调函数示例

    本示例"动态库回调函数示例"旨在演示如何在 VC++6.0 下创建和使用 DLL,特别是在 DLL 中定义回调函数。回调函数是一种编程技术,允许 DLL 将控制权交还给调用它的应用程序,以便在特定事件发生时执行自定义操作。 ...

    回调函数demo

    回调函数是编程中的一种常见设计模式,特别是在异步编程中,它允许我们将一个函数作为参数传递给另一个函数,以便在特定事件发生或操作完成后执行。这个概念在JavaScript、Python、C++等许多编程语言中都有广泛应用...

Global site tag (gtag.js) - Google Analytics