如下代码,每执行一次内存就少很多(1M左右),怎么回事?CFile file;
file.Open(imgfilename/*位图文件*/, CFile::modeRead);
int nSize = file.GetLength();
if (nSize <= 0)
return FALSE;
LPBYTE pValue;
pValue = new unsigned char[nSize];
int ActualSize = file.Read(pValue, nSize);
//存入数据库
m_pAdoRs->SetFieldBinary("carimage", pValue, ActualSize/*nSize*/);delete []pValue;

解决方案 »

  1.   

    你这样删除对吗。delete []pValue;
    改成delete pValue;试试。
      

  2.   

    file.close(),和file.open()配对执行
      

  3.   

    怎么看也只是file.close()和m_pAdoRs->SetFieldBinary("carimage", pValue, ActualSize/*nSize*/);这两句可能产生你的问题。
    题外话:
    LPBYTE pValue;
    pValue = new unsigned char[nSize];
    可改为可看些:
    LPBYTE pValue = new BYTE[nSize];
      

  4.   

    cuizm(射天狼) 我真服了你了
      

  5.   

    delete []pValue;   //正确!file.close();
      

  6.   

    应该是文件没有关闭占用内存
    加上file.close()试试
      

  7.   

    file.close()
    每次写的时候并不是马上写到磁盘里的,而是先放在内存里面,你这儿没有close,缺少的内存是存放的要写到磁盘的数据,