int i=0;
BOOL Connected;
while (!(Connected=capDriverConnect(m_hCapWnd,0))&& i++<10);
if(Connected)
{
// 连接第0 号驱动器
m_bInit=TRUE;
//得到驱动器的性能
capDriverGetCaps(m_hCapWnd, &m_CapDrvCap,sizeof(CAPDRIVERCAPS));
if(m_CapDrvCap.fCaptureInitialized)
{// 如果初始化成功
capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态
capPreviewRate(m_hCapWnd,30); // 设置预示帧频
capPreview(m_hCapWnd,TRUE); // 设置预示方式
}
else{// 初始化未成功
AfxMessageBox("视频捕捉卡初始化失败!");
AfxGetMainWnd()->PostMessage(WM_CLOSE);
}
}
else{// 未能连接到驱动器
AfxMessageBox("与视频捕捉卡连接失败!");
// AfxGetMainWnd()->PostMessage(WM_CLOSE);
}
代码作如上修改。原因,有些摄像头在win7中一次连接不上,奇怪的是有些却可以一次连上。(均为无驱型的)