我根据网上的代码做了一个摄像头显示图像程序
HWND ghWndCap; //捕获窗的句柄
CAPDRIVERCAPS gCapDriverCaps; //视频驱动器的能力
CAPSTATUS gCapStatus; //捕获窗的状态
char szCaptureFile[] = "MYCAP.AVI";
char gachBuffer[20]; 连接摄像头
ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window",
WS_CHILD ¦WS_VISIBLE,
0,0,
300,240,
(HWND)this-> m_hWnd,(int)0);
capSetCallbackOnError(ghWndCap, (FARPROC)ErrorCallbackProc);
capSetCallbackOnStatus(ghWndCap, (FARPROC)StatusCallbackProc);
capSetCallbackOnFrame(ghWndCap, (FARPROC)FrameCallbackProc);
capDriverConnect(ghWndCap, 0); // 将捕获窗同驱动器连接 //获得驱动器的能力,相关的信息放在结构变量gCapDriverCaps中
capDriverGetCaps(ghWndCap, &gCapDriverCaps, sizeof(CAPDRIVERCAPS));
capPreviewRate(ghWndCap, 66); // 设置Preview模式的显示速率
capPreview(ghWndCap, TRUE); //启动Preview模式 if (gCapDriverCaps.fHasOverlay) //检查驱动器是否有叠加能力
capOverlay(ghWndCap, TRUE); //启动Overlay模式
if (gCapDriverCaps.fHasDlgVideoSource)
capDlgVideoSource(ghWndCap); //Video source 对话框
if (gCapDriverCaps.fHasDlgVideoFormat)
capDlgVideoFormat(ghWndCap); // Video format 对话框
if (gCapDriverCaps.fHasDlgVideoDisplay)
capDlgVideoDisplay(ghWndCap); // Video display 对话框 退出的时候
capSetCallbackOnStatus(ghWndCap, NULL);
capSetCallbackOnError(ghWndCap, NULL);
capSetCallbackOnFrame(ghWndCap, NULL);
capCaptureAbort(ghWndCap); //停止捕获
capDriverDisconnect(ghWndCap); //将捕获窗同驱动器断开
但是我不知道为什么过了一段时间它就自动退了
The thread 0x5CC has exited with code 0 (0x0).
The thread 0xA4C has exited with code -1073741819 (0xC0000005).
The thread 0x9C8 has exited with code -1073741819 (0xC0000005).
The thread 0x5A0 has exited with code -1073741819 (0xC0000005).
The thread 0xA50 has exited with code -1073741819 (0xC0000005).
The program 'E:\VC\camera\Debug\camera.exe' has exited with code -1073741819 (0xC0000005). 意思应该是其中的线程退出了,但是我不知道哪个地方出问题了.我在程序里也没有创建线程啊.
请大家帮我看看.我现在想让它一直显示,该怎么做啊
HWND ghWndCap; //捕获窗的句柄
CAPDRIVERCAPS gCapDriverCaps; //视频驱动器的能力
CAPSTATUS gCapStatus; //捕获窗的状态
char szCaptureFile[] = "MYCAP.AVI";
char gachBuffer[20]; 连接摄像头
ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window",
WS_CHILD ¦WS_VISIBLE,
0,0,
300,240,
(HWND)this-> m_hWnd,(int)0);
capSetCallbackOnError(ghWndCap, (FARPROC)ErrorCallbackProc);
capSetCallbackOnStatus(ghWndCap, (FARPROC)StatusCallbackProc);
capSetCallbackOnFrame(ghWndCap, (FARPROC)FrameCallbackProc);
capDriverConnect(ghWndCap, 0); // 将捕获窗同驱动器连接 //获得驱动器的能力,相关的信息放在结构变量gCapDriverCaps中
capDriverGetCaps(ghWndCap, &gCapDriverCaps, sizeof(CAPDRIVERCAPS));
capPreviewRate(ghWndCap, 66); // 设置Preview模式的显示速率
capPreview(ghWndCap, TRUE); //启动Preview模式 if (gCapDriverCaps.fHasOverlay) //检查驱动器是否有叠加能力
capOverlay(ghWndCap, TRUE); //启动Overlay模式
if (gCapDriverCaps.fHasDlgVideoSource)
capDlgVideoSource(ghWndCap); //Video source 对话框
if (gCapDriverCaps.fHasDlgVideoFormat)
capDlgVideoFormat(ghWndCap); // Video format 对话框
if (gCapDriverCaps.fHasDlgVideoDisplay)
capDlgVideoDisplay(ghWndCap); // Video display 对话框 退出的时候
capSetCallbackOnStatus(ghWndCap, NULL);
capSetCallbackOnError(ghWndCap, NULL);
capSetCallbackOnFrame(ghWndCap, NULL);
capCaptureAbort(ghWndCap); //停止捕获
capDriverDisconnect(ghWndCap); //将捕获窗同驱动器断开
但是我不知道为什么过了一段时间它就自动退了
The thread 0x5CC has exited with code 0 (0x0).
The thread 0xA4C has exited with code -1073741819 (0xC0000005).
The thread 0x9C8 has exited with code -1073741819 (0xC0000005).
The thread 0x5A0 has exited with code -1073741819 (0xC0000005).
The thread 0xA50 has exited with code -1073741819 (0xC0000005).
The program 'E:\VC\camera\Debug\camera.exe' has exited with code -1073741819 (0xC0000005). 意思应该是其中的线程退出了,但是我不知道哪个地方出问题了.我在程序里也没有创建线程啊.
请大家帮我看看.我现在想让它一直显示,该怎么做啊
还是看一下-1073741819代表什么意思吧