MyException - 我的异常网
当前位置:我的异常网» VC/MFC » 一个关于stack overflow的奇怪有关问题

一个关于stack overflow的奇怪有关问题

www.MyException.Cn  网友分享于:2013-05-03  浏览:7次
一个关于stack overflow的奇怪问题,
我在一个CListCtrl里面添加了鼠标右键菜单,然后又添加了右键菜单的响应函数,结果问题就来了
响应函数如下:
void CDragTestDlg::OnFastmoveDeleteAll()
{
// TODO: 在此添加命令处理程序代码
CListCtrl* m_tmplist = (CListCtrl*)GetDlgItem(m_SelectlistId);

//char strName[MAX_FASTMOVE_NAME_LEN];
CString strName;
m_tmplist->GetItemText(m_SeleteIndex,0,(LPSTR)(LPCTSTR)strName,MAX_FASTMOVE_NAME_LEN);
CListManger *p = new CListManger;
p->DeleteList(strName);
        delete p;
}

CListManger是我自己写的一个类,里面使用了CMarkup去操作xml,DeleteList里面只要有xml.Load
或者xml.Save就会报错(stack overflow)(删掉Load和Save就没有问题),但是DeleteList在其他地方调用都不会出问题,唯独在这个事件响应函数里面调用会出问题,我有试过增加VS2010的堆栈保留和提交空间,都没有用,这个函数是用向导添加的,猜测是不是因为afx_msg类的事件响应函数的堆栈跟普通函数不一样,比普通函数小,有没有高手知道这个问题怎么解决?

Stack Overflow XML

------解决方案--------------------
错误使用CString

CString strName;
m_tmplist->GetItemText(m_SeleteIndex,0,strName.GetBuffer(MAX_FASTMOVE_NAME_LEN), MAX_FASTMOVE_NAME_LEN);
strName.ReleaseBuffer();

...

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有