为什么我离开作用域就出现析构出错呢?_RecordsetPtr pRecordsetBmp;
CString strSQL; char *pBuf; // 指针指向缓冲区 _variant_t vBuf;       // 这个变量在离开OnTimer的时候要出现析构错误~ ,为什么??? 急,求解决办法!
try
{
hRes=pRecordsetBmp.CreateInstance(__uuidof(Recordset));
if( SUCCEEDED(hRes) )
{
strSQL.Format(_T("SELECT zip_data FROM c7700_t WHERE id IN (SELECT id_7700 FROM config_t\
WHERE area_id=%d)"),nTreeCurSel); hRes=pRecordsetBmp->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
} try
{
if( !pRecordsetBmp->adoEOF )
{
// 读数据
vBuf=pRecordsetBmp->GetFields()->GetItem(_T("zip_data"))->GetChunk(66614);
if( vBuf.vt!=VT_NULL )
{
SafeArrayAccessData(vBuf.parray,(void **)&pBuf);
m_hBitmap=BufferToHBITMAP(pBuf); CRect rc(519,42,519+384,42+384);
InvalidateRect(&rc,FALSE);
}
}
else
{
// 没有数据
} }
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}

pRecordsetBmp->Close();
pRecordsetBmp.Release();

CDialog::OnTimer(nIDEvent);