0x01A686F0 处有未经处理的异常(在 五金上色软件.exe 中): 0xC000041D: 用户回调期间遇到未经处理的异常。。

CPntList* plist = &theApp.LPointlist;
_point_node node;
plist->AddTail(node);

很普通的调用Clist链表,却频繁出错

在ASSERT_VALID那里过不去,出现断言

这个地方已经很久没改过什么了。进行问题排查:

试了其他的Clist却都是正常的。就是这个theApp.LPointlist老是不行。

最后实在不行了,在定义的地方把theApp.LPointlist换了个位置

本来是这样的

CPntList LPointlist;//左平台-创建双链表-存放点
CPntList pointlist_ins;//用于存放插入的新链表
CPntList pointlist_temp;//用于暂时存放临时的

换成

CPntList pointlist_ins;//用于存放插入的新链表
CPntList LPointlist;//左平台-创建双链表-存放点
CPntList pointlist_temp;//用于暂时存放临时的
CPntList AfterList;//存放偏移点的链表

却发现可以了。不会出现断言了。

跟位置有关,那就看看上下的什么变量,往上一看果然有问题。

CDialog* pDialog[7];

这个变量是最近有操作过的。加了一个窗口,但是数组定义的数量却没有改大。因此出现数组越界。

要注意的是,在Release版本下,是不会报这个错误的。

 

posted @ 2017-12-21 08:56  magongbianma  阅读(5378)  评论(0编辑  收藏  举报