asmsys
驱动老牛
驱动老牛
  • 注册日期2002-03-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望17点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:2045回复:17

一个VC++的问题,debug 和release

楼主#
更多 发布于:2002-07-23 10:11
一个程序在DEBUG版本下很好的运行,但到了RELEASE版本下就出现如下错误:
Unhandle exception in dyjc.exe:0x00000005:Access violation
请帮忙.
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-23 10:20
呵呵

这个比较难

有不能跟
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
James.Ji
驱动老牛
驱动老牛
  • 注册日期2001-09-17
  • 最后登录2006-05-16
  • 粉丝0
  • 关注0
  • 积分-9分
  • 威望-8点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-23 10:25
Release下也可以调,不过具体怎么调试我忘了。你可以查一查。
车到山前必有路。 虽然有些土,却是我最有感触的一句话。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2002-07-23 10:25
看看是不是有pointer没有赋值就用了。
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-23 10:27
那debug怎么是好的

 
看看是不是有pointer没有赋值就用了。
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-07-23 10:30
这种问题我也遇到过。当时我解决的方法是一步步注释,然后编译,运行。整整注释了一天才找到!
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-07-23 10:33
同情财主。 :D
stower
驱动牛犊
驱动牛犊
  • 注册日期2001-06-08
  • 最后登录2010-05-19
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望32点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-07-23 10:34
内存方面的问题,以前我也遇到过,可能有一些变量没有分配内存,如指针变量,后面有访问了它,就会造成访问违例,好好检查一下,在debug下,vc会协助处理一些编程上的细节,检查不会很严格,在
release下是很严格的
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-07-23 10:35
当时我的错误是在程序中使用SendMessage函数给一个我自己创建的对话框,在关闭对话框时就会在Release版本出现那种错误。最后没辙了,用全局变量,不用SendMessage就好了。Faint!
不知对你有无帮助。 :D
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-07-23 10:36
同情财主。 :D

谢谢。眼泪哗哗的。 :D :D :D
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2002-07-23 10:41
那debug怎么是好的

 [quote] 看看是不是有pointer没有赋值就用了。
[/quote]
比如:
CXXX *pxx;
#idef _DEBUG
pxx = new CXXX;
#endif

pxx->XXX();
release的时候当然错了。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-07-23 10:47
[quote]那debug怎么是好的

 [quote] 看看是不是有pointer没有赋值就用了。
[/quote]
比如:
CXXX *pxx;
#idef _DEBUG
pxx = new CXXX;
#endif

pxx->XXX();
release的时候当然错了。 [/quote]

你这个是充分条件,不是必要条件。arthurtu也不会是这种问题吧?!

 :)
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-07-23 10:54
偶觉得也不会是这样的问题
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
13楼#
发布于:2002-07-23 10:54
呵呵,我只是示例给zydcat看看。
我碰见的是因为没有检查返回的pointer是否为NULL就用了。原来以为不可能是NULL的。
beaveror
驱动中牛
驱动中牛
  • 注册日期2002-06-13
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-07-23 15:23
内存方面的问题,以前我也遇到过,可能有一些变量没有分配内存,如指针变量,后面有访问了它,就会造成访问违例,好好检查一下,在debug下,vc会协助处理一些编程上的细节,检查不会很严格,在
release下是很严格的


同意,有时候也是因为变量没有赋初值等等。 access 00005 多是内存问题。
只要能解决问题,就一定给分。 希望高手赐教!
denizen
驱动大牛
驱动大牛
  • 注册日期2001-12-30
  • 最后登录2012-05-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-07-23 16:57
0x00000005 正是边界检查错误代码,可以在2000DDK中查看详细的说明。
Where there is a will, there is a road.
Alexander
驱动大牛
驱动大牛
  • 注册日期2002-02-04
  • 最后登录2005-06-16
  • 粉丝0
  • 关注0
  • 积分-5分
  • 威望-1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-07-24 04:05
我碰到过的是一个对话框中的控件自己会触发另一个控件的消息,在InitDialog的时候形成了无限递归,我整整找了一个礼拜,才搞明白是怎么回事!可恶的ms,msdn里根本就没有说那个该死的控件的这个行为!
aiherong
驱动牛犊
驱动牛犊
  • 注册日期2002-06-07
  • 最后登录2007-01-10
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-07-24 09:30
建议使用
try...catch...throw宏
如果还不行,能否将出错部分代码铁出来,大家好帮你分析




游客

返回顶部