我想从摄像头视频中获得一帧一帧的图像数据,我采用了回调函数
在FDetecDlg.h中声明LRESULT CALLBACK FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);
在FDetectDlg.cpp中实现LRESULT CALLBACK CFaceDetectDlg::FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr){....}
capSetCallbackOnFrame(m_hCapWnd,FrameCallbackProc);
在编译时出现错误如下,初学VFW、MFC对回调函数不太懂,请高手指教
error C2440: 'type cast' : cannot convert from 'long (__stdcall CFaceDetectDlg::*)(struct HWND__ *,struct videohdr_tag *)' to 'void *'
There is no context in which this conversion is possible
在FDetecDlg.h中声明LRESULT CALLBACK FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr);
在FDetectDlg.cpp中实现LRESULT CALLBACK CFaceDetectDlg::FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr){....}
capSetCallbackOnFrame(m_hCapWnd,FrameCallbackProc);
在编译时出现错误如下,初学VFW、MFC对回调函数不太懂,请高手指教
error C2440: 'type cast' : cannot convert from 'long (__stdcall CFaceDetectDlg::*)(struct HWND__ *,struct videohdr_tag *)' to 'void *'
There is no context in which this conversion is possible
出现错误如下:
error C2597: illegal reference to data member 'CFaceDetectDlg::data' in a static member function
error C2597: illegal reference to data member 'CFaceDetectDlg::data' in a static member function
error C2109: subscript requires array or pointer type
LRESULT CALLBACK CFaceDetectDlg::FrameCallbackProc(HWND hWnd, LPVIDEOHDR lpVHdr)
{
//unsigned char * data;
AfxMessageBox("回调函数");
data = lpVHdr -> lpData; // 获得视频数据首址并将数据存入data数组中以便处理
CString mid1,info1= " ";
for(int j=0;j <300;j++)
{
mid1.Format( "%d ",(int)data[j]);//你若想转换成整形就是“%d”,以此类推;
info1+=(" "+mid1);
}
AfxMessageBox(info1); return (LRESULT) TRUE;
}
为什么我写的这个回调函数根本就没有执行呢?急 帮忙