1. 程式人生 > >關於OpenCV程式執行結束時的異常中斷

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