新建一个MFC应用程序,导入OpenCV动态库,程序使用了opencv变量和函数。当程序在运行时,一切正常,但是点击应用程序关闭按钮时,那么问题就来了,输出窗口会出现一大堆内存泄漏问题。如下图所示:
Detected memory leaks!
Dumping objects ->
{468} normal block at 0x0051D9B8, 8 bytes long.
Data: < > E4 DA C8 00 00 00 00 00
{467} normal block at 0x0051D980, 8 bytes long.
Data: <8 > 38 DB C8 00 00 00 00 00
{466} normal block at 0x0051D948, 8 bytes long.
Data: < > 00 DB C8 00 00 00 00 00
{465} normal block at 0x0051D910, 8 bytes long.
Data: < > 1C DB C8 00 00 00 00 00
{464} normal block at 0x0051D8D8, 8 bytes long.
Data: <$ > 24 A7 C1 00 00 00 00 00
{463} normal block at 0x0051D8A0, 8 bytes long.
Data: <x > 78 A7 C1 00 00 00 00 00
......
{178} normal block at 0x00514C28, 8 bytes long.
Data: < V > AC 56 A5 10 00 00 00 00
{177} normal block at 0x00514BF0, 8 bytes long.
Data: < V > 9C 56 A5 10 00 00 00 00
{176} normal block at 0x00514BB8, 8 bytes long.
Data: < q > C8 71 84 10 04 00 00 00
Object dump complete.
程序“[13260] mfctest.exe”已退出,返回值为 2 (0x2)。
实践证明,这是误报的内存泄漏。这个现象仅限于MFC Debug的情况,MFC Release不会。此外,Windows控制台应用程序也无此误报现象。
前无古人,后无来者