全局变量: 
CString g_strFileName = "1.bmp";函数:
void CapPic(CString strPicFileName)
{
    g_strFileName = strPicFileName;  // 第一次调用正常, 第二次调用报错!
     ... ...
}调用:
第一次调用: CapPic("2.bmp");   // 没有问题
第二次调用: CapPic("3.bmp");   // 在CapPic()中报错!跟踪下去是因为CString "=" 操作符中Release()错误:
const CString& CString::operator=(const CString& stringSrc)
{
   if (m_pchData != stringSrc.m_pchData)
   {
       if ((GetData()->nRefs<0&&GetData()!=_afxDataNil)||stringSrc.GetData()-nefs < 0)
{ ... }
else
{
// can just copy references around
Release();  // 此处报错! , 见Release()函数.
ASSERT(stringSrc.GetData() != _afxDataNil); 
m_pchData = stringSrc.m_pchData;
InterlockedIncrement(&GetData()->nRefs);
}
   }
   return *this;
}// CString::Release()
void CString::Release()
{
if (GetData() != _afxDataNil)
{
ASSERT(GetData()->nRefs != 0);
if (InterlockedDecrement(&GetData()->nRefs) <= 0)
                        FreeData(GetData()); //此处报错,见FreeData()函数.
Init();
}
}// CString::FreeData()
void FASTCALL CString::FreeData(CStringData* pData)
{
#ifndef _DEBUG
int nLen = pData->nAllocLength;
if (nLen == 64)
_afxAlloc64.Free(pData);
else if (nLen == 128)
_afxAlloc128.Free(pData);
else if (nLen == 256)
_afxAlloc256.Free(pData);
else  if (nLen == 512)
_afxAlloc512.Free(pData);
else
{
ASSERT(nLen > 512);
delete[] (BYTE*)pData;
}
#else
delete[] (BYTE*)pData;  // 此处报错!!!
#endif
}// delete
void __cdecl operator delete(void* p)
{
#if !defined(_AFX_NO_DEBUG_CRT) && defined(_DEBUG)
_free_dbg(p, _NORMAL_BLOCK);  // 此处报错!!!
#else
free(p);
#endif
}请大侠们帮助!