zoukankan      html  css  js  c++  java
  • C# 回调函数

    回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。

    public delegate int pDataRec(int sid, int iusrdata, int idatatype, IntPtr pdata, int ilen);// 定义委托

    pDataRec pdataRec = new pDataRec(dataRec);
    private static int dataRec(int sid, int iusrdata, int idatatype, IntPtr pdata, int ilen) //回调原型
    {

    }

    m_hSession = HIKS_CreatePlayer((IntPtr)null, (int)pictureBox1.Handle, pdataRec, msgBack, 1);//调用

    调用的时候要用pdataRec 否则会出现

    对“testPlayer!testPlayer.Form1+pDataRec::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。

  • 相关阅读:
    python——函数
    python——文件操作
    python——字符编码
    【转】基于jquery的无刷新表格分页
    js console.log 打印 对像 数组 详解
    百度地图自己添加 标识地点 代码
    在线提取PDF中图片和文字
    安全cookie登录状态设计方案
    iScroll 下拉刷新
    WebSQL实例记录
  • 原文地址:https://www.cnblogs.com/googlegis/p/2978872.html
Copyright © 2011-2022 走看看