描述:
我有一个COM接口程序和一个调用改接口程序:
以下是接口函数
STDMETHODIMP CRequestAgt::GetMtReport(BSTR *pbstrReport, int *pRetVal)
{
// TODO: Add your implementation code here
CString strReport("");
*pRetVal=0;
strReport="008721101210000000 1380571102320060806200608060000000012969734000000000000003200000000000000000000000000";
*pbstrReport=strReport.AllocSysString();
return S_OK;
}
以下是调用的程序:
CString strTmp("");
BSTR bStr=::SysAllocStringLen(strTmp.AllocSysString(),500);
int nReturn=-1;
try
{
m_pRequest->GetMtReport(&bStr,&nReturn);
if(nReturn==0)
{
CString strReport(bStr);
::SysFreeString(bStr);
return strReport;
}
}
catch(...)
{
::SysFreeString(bStr);
return "";
}
::SysFreeString(bStr);
return "";
调用多次后 发现上面的COM接口程序内存不断增大...从跟踪的情况来看是有内存泄漏的...
哪位高手帮忙看看 怎样才不会出现内存泄漏的情况....谢了!