最近在使用 CInternetSession 和CHttpFile下载更新程序,遇到内存泄漏。发现使用了CHttpFile::Close后,依然会出现内存泄漏。还要再delete一下,才算是真正的把资源释放掉。
DWORD CMyFun::GetUrlFileLength(LPCTSTR szUrl)
{
CInternetSession session;
CHttpFile *pHttpFile;
DWORD dwSize = 0;
pHttpFile = (CHttpFile*)session.OpenURL(szUrl);
if (pHttpFile == NULL)
return 0;
pHttpFile->QueryInfo(HTTP_QUERY_STATUS_CODE,dwSize);
if(dwSize == 200)
{
pHttpFile->QueryInfo(HTTP_QUERY_CONTENT_LENGTH, dwSize);
}
pHttpFile->Close();
delete pHttpFile; //此行必要有
return dwSize;
}