读书人

简单的函数的内存增长有关问题

发布时间: 2012-02-09 18:22:27 作者: rapoo

简单的函数的内存增长问题
今天下午写的一个搜索文件夹的函数,测试发现内存一直增大(最大达到80M)晕吧。可是检查了半天,也不知道问题出在哪里。。。
void findDirectory1(CAToEDlg *dlg, CString strPath)
{
WIN32_FIND_DATAA fdData;
HANDLE hFindFile;
CString strDirectory;

strDirectory = strPath+ "\\*.* ";
hFindFile = ::FindFirstFile(strDirectory, &fdData);
if (hFindFile != INVALID_HANDLE_VALUE)
{
do
{
if (strcmp(fdData.cFileName, ". ")==0 || strcmp(fdData.cFileName, ".. ")==0 )
continue;
if (fdData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
dlg-> m_uiDirNumber++;
dlg-> m_strCurDirectory.Format( "%s\\%s ", strPath, fdData.cFileName);

dlg-> PostMessage(WM_MYUPDATEDATA);
findDirectory1(dlg, dlg-> m_strCurDirectory);
}
else
{
dlg-> m_uiFileNumber++;
dlg-> m_strCurFile.Format( "%s\\%s ", strPath, fdData.cFileName);

dlg-> PostMessage(WM_MYUPDATEDATA);
}

} while(::FindNextFile(hFindFile, &fdData));
}
}

[解决办法]
1. dlg是否new出来的?
2. 查找结束后需要FindClose
[解决办法]
没看到FindClose


-------------------------------------------------------
广告:VC/WinAPI 网络/多线程讨论 QQ群, 群号:41356711

读书人网 >VC/MFC

热点推荐