duilib加载大量子控件删除后再添加会崩溃!

程序辕 2016-01-27 01:45:25
使用duilib库写的界面,listUI加载一定数量的子控件,删除全部再添加这样的操作多次后,项目出现崩溃。
不知道原因是啥啊?难道是list控件RemoveAll没删除干净导致的添加失败?
...全文
985 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianxian_1019 2019-09-26
  • 打赏
  • 举报
回复
bool ViewForm::RemoveClass1(ui::EventArgs* msg) { std::wstring name = msg->pSender->GetName(); this->btn_stop1_; this->phone1_; } 为什么会出错呀??
超酷小子me 2018-10-30
  • 打赏
  • 举报
回复
引用 5 楼 lijia626482312 的回复:
m_pList->SetDelayedDestroy(false);
m_pList->RemoveAll();
这是最简单的,之前没看懂源码


使用了这个m_pList->SetDelayedDestroy(false);后,会出现其他异常
你家的孩子 2017-05-27
  • 打赏
  • 举报
回复
m_pList->SetDelayedDestroy(false); m_pList->RemoveAll(); 这是最简单的,之前没看懂源码
你家的孩子 2017-01-05
  • 打赏
  • 举报
回复
duilib,list控件bug,就是在于之前的wm_mousemove消息有冲突,需要清空m_PaintManager加载的相关信息,如: void CDuiMainWnd::ClearPaintManagerLog() { int count = m_pList->GetCount(); if (count <= 0) { return; } for (int i = 0; i < count;++i) { m_PaintManager.RemoveMouseLeaveNeeded(m_pList->GetItemAt(i)); } }
用户 昵称 2016-01-28
  • 打赏
  • 举报
回复
如前面所说,要跟踪一下,是否有内存泄露,排除之后,再确定是否是lib的bug。
oyljerry 2016-01-27
  • 打赏
  • 举报
回复
这个有可能是第三方库的bug,最好是自己避免
赵4老师 2016-01-27
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧