查看完整版本: 求助:MemoryMgr.c,Line:4384, Free handle?

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?

页: [1]
查看完整版本: 求助:MemoryMgr.c,Line:4384, Free handle?