• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

一个调试出现的错误,高手来帮忙,分不够再加

salir 2004-12-09 08:46:02
现在在做的一个程序,在程序关闭的过程中,在执行完ExitInstance()中的
return CWinApp::ExitInstance()之后,系统会提示出错,错误信息为:
Debug Assertion Failed!
Program : D:\.........\***.exe
File:afx.inl
Line:122
然后只能选择终止,重试和忽略
选择终止,程序跳出,选择忽略,会再次出现这个错误,再次选择忽略,会提示
"应用程序错误":"0x77e7c247"指令引用的"0xfffffff4"内存.该内存不能为"written"
请问是怎么回事儿啊?或者,可能是哪方面出了问题?

困扰了好多天了,实在找不到原因,各位老大帮忙看看。
...全文
88 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
oyljerry 2004-12-09
内存访问错误
检查一下数组,指针什么的
回复
saliors 2004-12-09
同意楼上的说法,看看数组有没有定义错误。
不行的话可以发到我的邮箱我帮你看看。podcar@21cn.com
回复
zj888 2004-12-09
查查你的CString操作
回复
bluesubmarin 2004-12-09
这种问题我遇到过,我上次是一个类的数组定义的时候溢出了,你查查看,有什么问题我们在联系
回复
salir 2004-12-09
再顶一次
回复
salir 2004-12-09
楼上的能说详细一点么?
回复
flyelf 2004-12-09
某个CString对象被溢出攻击了
回复
salir 2004-12-09
顶一下拉,高手们来帮忙拉
回复
salir 2004-12-09
我在调试的过程中,最后跟踪到这里,...\VC98\CRT\SRC\CRTODAT.C,ln343
if (__onexitbegin) {
_PVFV * pfend = __onexitend;

while ( --pfend >= __onexitbegin )
/*
* if current table entry is non-NULL,
* call thru it.
*/
if ( *pfend != NULL )
(**pfend)();
}
pfend的值不断的减,然后执行(**pfend)(),但是在pfend还没有到__onexitbegin时出错,

出错提示中的错误所在位置是如下语句:(文件是...\VC98\mfc\include\afx.inl)
_AFX_INLINE CStringData* CString::GetData() const
{ ASSERT(m_pchData != NULL); return ((CStringData*)m_pchData)-1; }
回复
salir 2004-12-09
代码太长了,不可能全贴出来的,把一部分贴出来么?
回复
tjandy 2004-12-09
把代码贴出来吧!大家帮你看看
回复
salir 2004-12-09
比如会有哪些语句会造成这种结果?
各位老大你们调试的时候遇到错误的时候是怎么调试的?实在没辙了。
回复
leky2000 2004-12-09
一般是内存指针已经为NULL,你还在对之进行操作的缘故,你可以跟踪一下,看到底是操作什么指针出的问题
回复
fisker0303 2004-12-09
是不是析构函数中有非法访问内存的语句?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-12-09 08:46
社区公告

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