Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2093126
  • 博文数量: 454
  • 博客积分: 10921
  • 博客等级: 上将
  • 技术积分: 5396
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-15 15:20
个人简介

伪IT男

文章分类

全部博文(454)

文章存档

2016年(2)

2013年(6)

2012年(17)

2011年(29)

2010年(24)

2009年(54)

2008年(53)

2007年(202)

2006年(67)

分类:

2007-12-01 14:45:53

    一个vc6的程序,移植到vs2005下,经过一番调试,Release 版可以运行了,Debug却总也出现:
冒出的对话框为:Windows 已在 Plan_D.exe 中触发一个断点。
其原因可能是堆被损坏,这也说明 Plan_D.exe 中或它所加载的任何 DLL 中有 bug。
输出窗口可能提供了更多诊断信息
Plan_D.exe 中的 0x5f42d429 处最可能的异常: 0xC0000005: 读取位置 0x0000000c 时发生访问冲突
Plan_D.exe 中的 0x7d64a79e 处最可能的异常: 0xC0000005: Access violation
Plan_D.exe 中的 0x7d64a79e 处未处理的异常: 0xC0000005: Access violation
这样的错误,找了很久都不明白什么意思。
 
仔细看了一下调试窗口和输出窗口,发现0x5f42d429 对应的模块应该是MFC42D.dll。mfc42d.dll是MFCDLL共享库文件,用于支持调试版本的MFC程序。有可能是这个文件本身有问题,搜索发现,机器上有两个MFC42D.dll,我正在使用的是2004年的,1M多,另一个是98年的,900k的样子。想到我的工程是从VC6移植过来的,可能需要98年的那个。换了之后,OK!
 
 
 
阅读(4141) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~