关于CMemFile的detach有关问题
关于CMemFile的detach问题
请看如下代码:
CMemFile memfile;
memfile.write(......);
memfile.write(......);
...
...
BYTE* pBuf = memfile.Detach();
...
...
这段代码是循环执行的,执行一次内存就刚好泄露memfile的大小。我看了一下msdn关于CMemFile的Detach, 这么说的:“Calling this function also closes the CMemFile”,是不是执行了BYTE* pBuf = memfile.Detach()后,memfile就跟它创建的内存无关了,不会再去自动释放,所以需要手动释放那段内存:delete pBuf吗?
有点不确定,因为一直都是new和delete成对出现的,所以请教一下各位!
------解决方案--------------------
Detach之前先Free
http://msdn2.microsoft.com/en-us/library/tzdxd4x0(VS.80).aspx
------解决方案--------------------
需要自己释放。
请看如下代码:
CMemFile memfile;
memfile.write(......);
memfile.write(......);
...
...
BYTE* pBuf = memfile.Detach();
...
...
这段代码是循环执行的,执行一次内存就刚好泄露memfile的大小。我看了一下msdn关于CMemFile的Detach, 这么说的:“Calling this function also closes the CMemFile”,是不是执行了BYTE* pBuf = memfile.Detach()后,memfile就跟它创建的内存无关了,不会再去自动释放,所以需要手动释放那段内存:delete pBuf吗?
有点不确定,因为一直都是new和delete成对出现的,所以请教一下各位!
------解决方案--------------------
Detach之前先Free
http://msdn2.microsoft.com/en-us/library/tzdxd4x0(VS.80).aspx
------解决方案--------------------
需要自己释放。