MFC中某个类有个CString类型数组成员变量m_szData[120],编译通过,程序退出时总是中断在atlsimpstr.h的void Release() throw()函数处:void Release() throw()
{
ATLASSERT( nRefs != 0 );//中断在这里if( _AtlInterlockedDecrement( &nRefs ) <= 0 )
{
pStringMgr->Free( this );
}
}m_szData[120]在构造函数里赋值初始化也没用,而如果把m_szData[120]注释掉则程序退出不会出现问题。
该如何解决?
mfcCString
{
ATLASSERT( nRefs != 0 );//中断在这里if( _AtlInterlockedDecrement( &nRefs ) <= 0 )
{
pStringMgr->Free( this );
}
}m_szData[120]在构造函数里赋值初始化也没用,而如果把m_szData[120]注释掉则程序退出不会出现问题。
该如何解决?
mfcCString
CString str("default string");
没见过str[120]的。
CString str[100];
程序退出毫无问题。
肯定不是初始化的问题,应该是你程序里面对他进行了操作,比如GetBuffer
不行指的什么? 是无法满足你的需求,还是报错啊?
如果换别的也报错,估计就不是这里的问题。 你再换个char或其他数组试试吧
用 CStringArray