工业相机采集帧回调函数

下面是一个工业相机采集的帧回调定义:

被调用者定义如下:

//定义回调 一般定义成宏
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;
	//..省略
	
}  
 
  
 
 

你可能感兴趣的:(C/C++)