emily 2004-9-7 23:13
求助:MemoryMgr.c,Line:4384, Free handle?
大家好!我的程序在删除一条记录时,就会出现“MemoryMgr.c,Line:4384, Free handle”的错误。是怎么回事啊?请各位高手指点一下,多谢了!
我的程序如下:
for(i=0; i<num; i++)
{
MemHandle h = DmQueryRecord(gdbInventIn, i);
if(h)
{
MemPtr p = MemHandleLock(h);
MemMove(&rec, (Char*)p, sizeof(dbInventIn));
if((StrCompare(rec.chLotBatchNo,LotBatchNo)==0))
{ DmRemoveRecord(gdbInventIn,i); MemHandleUnlock(h); break;
} else MemHandleUnlock(h); }
}
rogerzhang 2004-9-9 06:22
我也碰到类似的问题,在切换Form的时候报这个错误:
MemoryMgr.c,Line:3564, NULL handle?
正在研究中,楼主有好消息记得通知一下啊!?
rogerzhang 2004-9-9 06:24
我也碰到类似的问题,在切换Form的时候报这个错误:
MemoryMgr.c,Line:3564, NULL handle?
正在研究中,楼主有好消息记得通知一下啊!?
bambon 2004-9-9 08:02
我猜是不是因为执行顺序的问题呀?
其实你在MemMove后面就可以使用 MemHandleUnlock(h) 了吧?
你把 h 所对应的内存块删除了,然后才 unlock h ,而此时 h 是不是已经没意义了?
sduzjw 2004-9-10 05:52
老兄你是不是应该先unlock然后再remove?