vc利用摄像头进行图像采集的问题
来源:百度知道 编辑:UC知道 时间:2024/05/28 14:45:41
CRect rc;
CAPVIDEO.GetWindowRect(&rc);
ScreenToClient(rc);
CAPDRIVERCAPS capd;
CAPSTATUS caps;
tran=NULL;
e.ResetEvent();
AfxBeginThread(vproc,(void*)this);
::WaitForSingleObject(e,INFINITE);
if(capDriverConnect(videohwnd,0)==TRUE)
{
capDriverGetCaps(videohwnd,sizeof(CAPDRIVERCAPS),&capd);
capGetStatus(videohwnd,&caps,sizeof(CAPSTATUS));
::SetParent(videohwnd,*this);
::SetWindowLong(videohwnd,GWL_STYLE,WS_CHILD);
::SetWindowPos(videohwnd,NULL,rc.left,rc.top,
rc.Width(),rc.Height(),SWP_NOZORDER);
::ShowWindow(videohwnd,SW_SHOW);
capPreviewRate(videohwnd,30);
capPreview(videohwnd,true);
}
else
{
AfxMessageBox("创建失败");
}
其中的CAPVIDEO有错误,类型没有定义,什么地方错了?
CAPVIDEO.GetWindowRect(&rc);
ScreenToClient(rc);
CAPDRIVERCAPS capd;
CAPSTATUS caps;
tran=NULL;
e.ResetEvent();
AfxBeginThread(vproc,(void*)this);
::WaitForSingleObject(e,INFINITE);
if(capDriverConnect(videohwnd,0)==TRUE)
{
capDriverGetCaps(videohwnd,sizeof(CAPDRIVERCAPS),&capd);
capGetStatus(videohwnd,&caps,sizeof(CAPSTATUS));
::SetParent(videohwnd,*this);
::SetWindowLong(videohwnd,GWL_STYLE,WS_CHILD);
::SetWindowPos(videohwnd,NULL,rc.left,rc.top,
rc.Width(),rc.Height(),SWP_NOZORDER);
::ShowWindow(videohwnd,SW_SHOW);
capPreviewRate(videohwnd,30);
capPreview(videohwnd,true);
}
else
{
AfxMessageBox("创建失败");
}
其中的CAPVIDEO有错误,类型没有定义,什么地方错了?
你的CAOVIDEO明显是一个窗口(应该就是显示图像的窗口吧),类型应该是CWnd。如果用的是MFC的话,你看看你的类向导里面有没有申明这个变量。
<<DirectShow开发指南>>里有这个例子,给你下载地址: