關於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的值。