如下代码,每执行一次内存就少很多(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;
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;
改成delete pValue;试试。
题外话:
LPBYTE pValue;
pValue = new unsigned char[nSize];
可改为可看些:
LPBYTE pValue = new BYTE[nSize];
加上file.close()试试
每次写的时候并不是马上写到磁盘里的,而是先放在内存里面,你这儿没有close,缺少的内存是存放的要写到磁盘的数据,