NewMedia.exe 中的 0x727abfe0 处最可能的异常: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突

尛棜 2011-10-31 11:23:53
一个基于对话框的MFC应用程序,再退出是出错: 0xC0000005: 读取位置 0xfeeefeee 时发生访问冲突

单步调试时发现,在对话框析构函数后,析构容器处发生访问冲突:
code=C/C++]_[AFXWIN_INLINE CGdiObject::~CGdiObject()
{
AFX_BEGIN_DESTRUCTOR

DeleteObject();

AFX_END_DESTRUCTOR
}[/code]


~vector()
{
 // destroy the object
 _Tidy();
}


其中在程序中定义的全局变量有:
struct Program_Info
{
CString strProgramNo;
CString strProgramName;
int nProgramType;
CString strFavoriteFlag;
CString strProgramInfo;
int nSteamID;
int nSeverID;
};
struct HD_Info
{
CString strHDProgramNo;
CString strHDProgramName;
int nHDID;
int nHDProgramType;
};
struct SD_Info
{
CString strSDProgramNo;
CString strSDProgramName;
int nSDID;
int nSDProgramType;
};
struct Radio_Info
{
CString strRAProgramNo;
int nRAID;
CString strRAProgramName;
int nRAProgramType;
};
vector <SD_Info> SD_Pro;
vector <HD_Info> HD_Pro;
vector <Radio_Info> Radio_Pro;
vector <Program_Info> m_vecProgram;
vector <CString> m_vecfliter;




不知道怎么搞的,崩溃啊!!请各位大侠帮帮忙!!!
...全文
1391 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
尛棜 2011-10-31
  • 打赏
  • 举报
回复
错了,在堆栈中发现是:运行到
> mfc42u.dll!727abfe0()
[下面的框架可能不正确和/或缺失,没有为 mfc42u.dll 加载符号]
mfc42u.dll!727c9fee()
mfc42u.dll!727ca043()
CUTIActiveX.ocx!10505ac2()
CUTIActiveX.ocx!1052d96f()
CUTIActiveX.ocx!10520a99()
kernel32.dll!7c80b729()

就会发生访问冲突,

这个是什么意思???
尛棜 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yuucyf 的回复:]
这样定义没有问题,是不是容器的使用上出现问题了。
通过堆栈看看是哪个Vector析构出现问题,再在你的代码中出查找用这个vector变量的地方.是不是vector中包含的CString在哪个地方已经释放了,而Vector变量中海存在,导致二次析构.
[/Quote]
嗯。查看堆栈发现是>std::vector<Program_Info,std::allocator<Program_Info> >::~vector<Program_Info,std::allocator<Program_Info> >() 行560 + 0xe 字节 C++
oyljerry 2011-10-31
  • 打赏
  • 举报
回复
是不是vector越界等操作
yuucyf 2011-10-31
  • 打赏
  • 举报
回复
这样定义没有问题,是不是容器的使用上出现问题了。
通过堆栈看看是哪个Vector析构出现问题,再在你的代码中出查找用这个vector变量的地方.是不是vector中包含的CString在哪个地方已经释放了,而Vector变量中海存在,导致二次析构.
尛棜 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fandh 的回复:]
堆栈里面能看到你对应的代码么?
[/Quote]
fandh 2011-10-31
  • 打赏
  • 举报
回复
堆栈里面能看到你对应的代码么?
尛棜 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 visualeleven 的回复:]
哪里越界了吧
[/Quote]
我把用到vector的地方都查看了一下,都有界定的,应该不会越界。。。
尛棜 2011-10-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 buyong 的回复:]
CUTIActiveX.ocx的代码有没有,它用的stl版本和你用的一样么?
[/Quote]
CUTIActiveX.ocx这个的代码没有。。。他用的VC6.0.我用的VS2008.STL应该一样的吧?
Eleven 2011-10-31
  • 打赏
  • 举报
回复
哪里越界了吧
buyong 2011-10-31
  • 打赏
  • 举报
回复
CUTIActiveX.ocx的代码有没有,它用的stl版本和你用的一样么?

16,472

社区成员

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

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

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