关于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
------解决方案--------------------
需要自己释放。