7184|10

76

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

assertion failed :"File wincore.cpp ,ine 1051"是什么错误? [复制链接]

wince环境下,单文档程序,使用了分割窗口类CSplitterWnd,
在需要显示的时候,出现这个错误,请问是怎么回事?
这个错误一般是在什么情况下出现的呢?

最新回复

建议把自己的代码好好整理一下,所有申请/释放内存的地方都作个错误判断,然后变量定义的时候都给它赋一个初始化的值.这样至少可以保证自己的代码不会data abort  详情 回复 发表于 2008-12-31 10:02
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
具体原因很难说!

一般是LZ的代码有问题,引起这个系统文件的错误。
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用楼主 xianzi123 的帖子:
wince环境下,单文档程序,使用了分割窗口类CSplitterWnd,
在需要显示的时候,出现这个错误,请问是怎么回事?
这个错误一般是在什么情况下出现的呢?


这个问题我刚刚遇到,已经找到原因解决。
请看我的博客http://blog.eeworld.net/gooogleman/archive/2008/12/25/3604188.aspx
good luck
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

4
 
多看代码,分析MAP文件
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
问题还是没有解决:
  出现问题的代码为:
         CTrainView* pAnalog=(CTrainView*)m_wndSplitter2.GetPane(0,0);
        CDigitalView* pDigital=(CDigitalView*)m_wndSplitter2.GetPane(0,1);
        CChartView* pChart=(CChartView*)m_wndSplitter1.GetPane(1,0);
  上述三个类是View类的子类。当运行到第一句话时就出现这个错误,F11跟进去,
  在CWnd* CSplitterWnd::GetPane(int row, int col) const函数里的ASSERT_VALID(this);出现该错误,继续跟进去,是这里发生错误。
        if (!AfxIsValidAddress(pOb, sizeof(CObject)))
        {
                TRACE0("ASSERT_VALID fails with illegal pointer.\n");
                if (AfxAssertFailedLine(lpszFileName, nLine))
                        AfxDebugBreak();
                return;     // quick escape
        }
  不知道是怎么回事?哪位能给我解释下吗?是在是不知道哪里出错了
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 xianzi123 的回复:
if (!AfxIsValidAddress(pOb, sizeof(CObject)))
{
TRACE0("ASSERT_VALID fails with illegal pointer.\n"); if (AfxAssertFailedLine(lpszFileName, nLine))
AfxDebugBreak();
return;    // quick escape
}



已经告诉你非法指针了!!!
肯定是你分配内存、申请空间出错了。。。
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

7
 
这种原因很多的,我也是碰巧遇到了。
估计你和我不一样。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
CTrainView* pAnalog=(CTrainView*)m_wndSplitter2.GetPane(0,0);
改为:
CTrainView*pAnalog=(CTrainView*)((CMainFrame*)AfxGetMainWnd())->m_wndSplitter2->GetPane(0,0);
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
不知道怎么回事,现在这里
if (!AfxIsValidAddress(pOb, sizeof(CObject)))
{
TRACE0("ASSERT_VALID fails with illegal pointer.\n"); if (AfxAssertFailedLine(lpszFileName, nLine))
AfxDebugBreak();
return;    // quick escape
}
没有问题了,我什么都没有改动。
出现的问题变为:
void CWnd::AssertValid() const函数中的
                   CObject* p;
                ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
                        (p = pMap->LookupTemporary(m_hWnd)) != NULL);


调试信息中显示m_hwnd是unused,请问应该怎么样修改才好呢?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

10
 
具体原因不好讲
建议还是重新建个工程把代码重新写一下
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
建议把自己的代码好好整理一下,所有申请/释放内存的地方都作个错误判断,然后变量定义的时候都给它赋一个初始化的值.这样至少可以保证自己的代码不会data abort
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表