本文共 884 字,大约阅读时间需要 2 分钟。
下面是一个工业相机采集的帧回调定义:
被调用者定义如下:
//定义回调 一般定义成宏typedef void (__stdcall *STREAM_PROC)(unsigned char* buff, void* pUserData);class camera{private: STREAM_PROC m_pStreamProc; void* m_pUserPtr; void onGetFrame(const GenICam::CFrame& frame) //回调的函数 { if(NULL != m_pStreamProc) { m_pStreamProc(m_pBuff, m_pUserPtr); } }public: bool SetStreamHook(STREAM_PROC proc, void*) // 使用该函数设置设置回调 { if(NULL != m_pStreamProc) { return FALSE; } m_pStreamProc = proc; m_pUserPtr = pObj; return TRUE; } //定义调用者:void CALLBACK CCDCallBack1(unsigned char* lpParam, void* pUserData);STREAM_PROC proc = (STREAM_PROC)CCDCallBack1; camera m_camera;m_camera.SetStreamHook(proc, (void*)this);//调用接口 //要回调的函数 定义全局或者类中的静态成员函数void CALLBACK CCDCallBack1(unsigned char* lpParam, void* lpUser){ BYTE *pDataBuffer = (BYTE*)lpParam; CCCDCtrl *ccd = (CCCDCtrl*)lpUser; //..省略 }
转载地址:http://kiown.baihongyu.com/