vs2008线程退出后异常[vs 线程已退出] | 您所在的位置:网站首页 › live2dviewerex应用异常退出 › vs2008线程退出后异常[vs 线程已退出] |
vs2008+opencv2.4.9 打开摄像头程序异常退出
程序应该是在这两个地方出了问题: if (capture == NULL) { printf("No camera detected!\n"); exit(-1); } if (img == NULL) { printf("Camera detected, but grab image error!\n"); exit(-1); } 第一段的作用是判断摄像头有没有启动成功,第二段的作用是在判断有没有从摄像头读到图像。 “CvCapture* capture = cvCaptureFromCAM(-1);”这件话的作用是打开摄像头。 因为摄像头启动和图像读取都需要一定的时间,所以程序运行到这两个判断步时,摄像头可能还没有启动或者启动后获取的图像还未能传输到相应位置,进而会触发相应判断条件而执行“exit(-1)”,引起程序异常退出。 你可以在调试程序时分别在这两个判断语句中设置断点来验证是不是该处出现了问题。 如果问题是出现在这里,解决方法如下: 把两个判断条件段改为 while(1) { if (capture !=NULL) break; } 和 while(1) { if (img!=NULL) break; } 如果问题不是出现在这里,欢迎继续交流。(我也是刚接触opencv,遇到过类似的问题。回答若有不准确的地方请包涵并指出。) VS2008 程序中 出现0X77D464F4 处未处理的异常 :0XC0000005:access violationn 和 Right 出问题了把 因为路径中有中文, 你换成全英文 就不会出错了。 改的话, 看工程属性中是否 定义 unicode 或者 使用unicode相关函数 [img]vs2008中 0x7562d36f 处最可能的异常: Microsoft C++ 异常: 内存位置 0x0018f45c 处的 cv::Exception。一般而言, OPENCV有一些初始化的过程, 好像这里没有看到. 这里可能是句柄为NULL而导致的异常. 要想了解到底是什么原因, 可以使用如下的办法: int main(int argc, char** argv) { try { // main()函数里面的代码移动到这里来. } catch( cv::Exception e ) { const char* err_msg = e.what(); printf ("%s\n", err_msg); } return 0; } VS2008突然出现devenv.exe[3548]中发生未处理的win32异常怎么解决VS直接关掉了找不到 Devenv.exe有可能是杀毒软件将Devenv.exe误删了,或系统的环境变量build一遍,或在工程属性设置中关掉优化设置。 从装系统 或装vs2008 由于线程退出或应用程序请求,已放弃I/O操作1、首先打开开始菜单右键,点击【磁盘管理】。 2、在磁盘管理界面右侧找到U盘磁盘盘符,单击右键,选择“更改驱动器号和路径”。 3、弹出的更改驱动器号和路径窗口中,点击“更改”按钮。 4、在更改驱动器和路径框中,单击“分配以下驱动器号”。 5、在弹出的下拉菜单内选一个其他的驱动器号,点击“确定”,在弹出提示框中点击“是”,重启电脑问题就解决了。 vs2008线程退出后异常的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vs 线程已退出、vs2008线程退出后异常的信息别忘了在本站进行查找喔。 |
CopyRight 2018-2019 实验室设备网 版权所有 |