兄弟,为什么这样会内存泄漏?
CString CInventoryView::MyVariantToString(CDBVariant var)
{
/////////////检测内存是否泄漏
#ifdef _DEBUG
CMemoryState oldMemState, newMemState, diffMemState;
oldMemState.Checkpoint();
#endif
CString strValue="";
//*
switch(var.m_dwType)
{
case DBVT_STRING:
strValue = *(var.m_pstring);
break;
case DBVT_NULL:
strValue = "";
break;
case DBVT_DATE:
strValue.Format("%d-%2d-%2d",
var.m_pdate->year,
var.m_pdate->month,
var.m_pdate->day);
break;
case DBVT_SHORT:
strValue.Format("%d",var.m_iVal);
break;
case DBVT_LONG:
strValue.Format("%d",var.m_lVal);
break;
default:
strValue="";
}
#ifdef _DEBUG
newMemState.Checkpoint();
if( diffMemState.Difference( oldMemState, newMemState ) )
{
TRACE( "Memory leaked In CInventoryView::MyVariantToString(CDBVariant var)!\n" );
}
#endif
return strValue;
}
以上这个函数会内存泄漏,为什么?怎么解决?