关于OpenCV程序运行结束时的异常中断

在使用OpenCV3和vs 2015过程中:

当调用namedWindow()或者imshow()函数之后,不进行手动释放,在程序运行结束时,会出现下面这些异常中断:

1.以下为waitKey(1000)与waitKey(0)之后的结果:


0x00007FFAD7990DC0 (ntdll.dll)处(位于 test.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突。

程序“[4180] test.exe”已退出,返回值为 0 (0x0)。


2.当手动关闭控制台后的结果:

线程 0x1874 已退出,返回值为 1 (0x1)。

线程 0x3058 已退出,返回值为 0 (0x0)。

线程 0x2e44 已退出,返回值为 1 (0x1)。

线程 0x17c4 已退出,返回值为 1 (0x1)。

线程 0x2414 已退出,返回值为 1 (0x1)。

线程 0x734 已退出,返回值为 0 (0x0)。

线程 0x2834 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x31bc 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x1190 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x2c38 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x3cec 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x3eb4 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x3c90 已退出,返回值为 -1073741510 (0xc000013a)。

线程 0x3300 已退出,返回值为 -1073741510 (0xc000013a)。

程序“[5168] test.exe”已退出,返回值为 -1073741510 (0xc000013a)。


以上两种情况程序都不是正常结束!

3.当在waitKey(1000)之后加入destroyAllWindows()函数后:

线程 0x3c3c 已退出,返回值为 0 (0x0)。

线程 0xf84 已退出,返回值为 0 (0x0)。

线程 0x2754 已退出,返回值为 0 (0x0)。

线程 0x1c68 已退出,返回值为 0 (0x0)。

线程 0xadc 已退出,返回值为 0 (0x0)。

线程 0x11e8 已退出,返回值为 0 (0x0)。

线程 0x2ce4 已退出,返回值为 0 (0x0)。

程序“[9244] test.exe”已退出,返回值为 0 (0x0)。

程序正常退出!

4.值得注意的是,不管在那种情况下,直接关闭控制台来退出程序,程序很可能会返回一个不是0的值。

猜你喜欢

转载自blog.csdn.net/SweetWind1996/article/details/80711197