for (int i = 0 ; i < m_List.GetCount();)
{
POSTION pos = m_List.Findindex(i);
......
Cbutton * lpBtn = m_List.GetAt(pos);
if(lpBtn->Stata == 1)
{
SendMessage(.....,(lParam)lpbtn);
//在Sendmessge(里面没对mlist做任何操作,去掉sendmssage则不会出现,这种情况)这个之后 pos的 值 就发生了 变化,导致 remove的时候crash,
还发现 整个 M_list 的Note 节点的内存全部发生了变化,但整个M_list数据时完好的,
似乎只是整体搬迁了个位置?
有人能解释下为什么不啊,实在想不通。
1.m_list节点的内存 会整体搬迁吗?
2.想遍历 m_list 删除 某几个元素,怎样写安全啊?
m_List.Remove(pos);
lpBtn->DestoryWindow();
}else
{
i++;
}}
{
POSTION pos = m_List.Findindex(i);
......
Cbutton * lpBtn = m_List.GetAt(pos);
if(lpBtn->Stata == 1)
{
SendMessage(.....,(lParam)lpbtn);
//在Sendmessge(里面没对mlist做任何操作,去掉sendmssage则不会出现,这种情况)这个之后 pos的 值 就发生了 变化,导致 remove的时候crash,
还发现 整个 M_list 的Note 节点的内存全部发生了变化,但整个M_list数据时完好的,
似乎只是整体搬迁了个位置?
有人能解释下为什么不啊,实在想不通。
1.m_list节点的内存 会整体搬迁吗?
2.想遍历 m_list 删除 某几个元素,怎样写安全啊?
m_List.Remove(pos);
lpBtn->DestoryWindow();
}else
{
i++;
}}
解决方案 »
- 在共享 DLL 中使用 MFC, 程序没法在其他机器上运行...
- 同一程序在不同机器不能运行的问题
- 如何将VC压缩成一个EXE文件?
- VC真的不适合做复杂的数据库应用程序吗?
- 环境变量的问题!!!
- 关于CSocket的一个小问题,请帮忙解决。
- 国庆献礼:成功结合MSDN2003.4和VC++6.0,向斑竹申请置顶
- 用过CJ60Lib的高手请进,有个问题需要讨论。(可能是高难问题)
- 初级问题:谁能给我讲一下Window Origin 和Viewport Origin有什么不同,各代表什么?在线等待!谢谢!!
- 求快速DCT正反算法,要立刻可用的,经过验证的,如有经济要求,可mail:[email protected]
- win7下直接拖动文件到回收站调用的什么函数呢?
- 子窗口大小改变问题
for(int i = 0; i != 10; ++i)
{
test.AddTail(i);
} CString strTemp(_T(""));
CString strText(_T(""));
POSITION pos = test.GetHeadPosition();
while(pos)
{
strTemp.Format(_T("%d, "), test.GetAt(pos));
strText += strTemp;
test.GetNext(pos);
} AfxMessageBox(strText);
pos = test.GetTailPosition();
while(pos)
{
int nValue = test.GetAt(pos);
switch(nValue)
{
case 3:
case 4:
case 5:
case 6:
test.RemoveAt(pos);
break; default:
break;
}
test.GetPrev(pos);
} pos = test.GetHeadPosition();
strText.Empty();
while(pos)
{
strTemp.Format(_T("%d, "), test.GetAt(pos));
strText += strTemp;
test.GetNext(pos);
}
AfxMessageBox(strText);