解决方案 »
- ITK实现DICOM图像拼接
- 控件输出问题
- 有关vs2005下dll调用问题
- 读取大的GEOTIFF(728M)文件失败。。。
- 讨论一下:如何做一个好的键盘记录器!
- VC做的程序启动有问题,怎么办?
- 90分,在线等送。。。请问怎么让我的单文档程序的所有静态切分窗口共用一个水平滚动条?
- 送分问题:怎样编写DLL程序?
- VC6.0中应该没有包含全部的标准C++吧,我是说在1998年完成的标准C++?
- 我的毕业课题用snmp作流量分析,请问各位高手,是用socket还是winsnmp api? 另:winsnmp是否只能在NT下运行?
- API Hook
- MFCODBC使用者操作SQL2005数据库问题
{--------------------------------while(flag == true)
{
不好意思,这个是我后面修改很多版本后复制进去弄错了,原程序也是flag==true,,,还是不行的,,实在不解为什么不能退出
线程中加断点,查看你想关闭时flag的值是否变化,怀疑flag未正确赋值
那个flag没有问题,我加断点跟踪了下,flag是起了作用的,退出是到了cvReleaseCapture(&capture);,,就出问题了,,,
if ( !managedapp )
exit(mainret); if (has_cctor == 0)
_cexit(); }
调用堆栈窗口显示 opencv_highgui244d.dll!6584623b() [下面的框架可能不正确和/或缺失,没有为 opencv_highgui244d.dll 加载符号]
个人认为openCV1.0的摄像头函数对多线程支持有问题姑且用主线程定时器循环检测摄像头线程是否退出的方式绕过去了
{
cvReleaseCapture(&capture);
break;}这个是不是进不去啊。flag == false的时候直接跳出外层循环了吧。然后摄像头没释放,所以就出问题了。
方法就是在处理WM_DESTROY消息之前,让主线程Sleep一小段时间→_→
估计是主线程关闭太快了以至于摄像头没来得及释放