| 
					阅读:2259回复:17
				 一个VC++的问题,debug 和release
					一个程序在DEBUG版本下很好的运行,但到了RELEASE版本下就出现如下错误:
 Unhandle exception in dyjc.exe:0x00000005:Access violation 请帮忙. | |
| 沙发#发布于:2002-07-23 10:20 
					呵呵
 这个比较难 有不能跟 | |
| 
 | 
| 板凳#发布于:2002-07-23 10:25 
					Release下也可以调,不过具体怎么调试我忘了。你可以查一查。				 | |
| 
 | 
| 地板#发布于:2002-07-23 10:25 
					看看是不是有pointer没有赋值就用了。				 | |
| 地下室#发布于:2002-07-23 10:27 
					那debug怎么是好的
 看看是不是有pointer没有赋值就用了。 | |
| 
 | 
| 5楼#发布于:2002-07-23 10:30 
					这种问题我也遇到过。当时我解决的方法是一步步注释,然后编译,运行。整整注释了一天才找到!				 | |
| 
 | 
| 6楼#发布于:2002-07-23 10:33 
					同情财主。 :D				 | |
| 7楼#发布于:2002-07-23 10:34 
					内存方面的问题,以前我也遇到过,可能有一些变量没有分配内存,如指针变量,后面有访问了它,就会造成访问违例,好好检查一下,在debug下,vc会协助处理一些编程上的细节,检查不会很严格,在
 release下是很严格的 | |
| 8楼#发布于:2002-07-23 10:35 
					当时我的错误是在程序中使用SendMessage函数给一个我自己创建的对话框,在关闭对话框时就会在Release版本出现那种错误。最后没辙了,用全局变量,不用SendMessage就好了。Faint!
 不知对你有无帮助。 :D | |
| 
 | 
| 9楼#发布于:2002-07-23 10:36 同情财主。 :D 谢谢。眼泪哗哗的。 :D :D :D | |
| 
 | 
| 10楼#发布于:2002-07-23 10:41 那debug怎么是好的[/quote] 比如: CXXX *pxx; #idef _DEBUG pxx = new CXXX; #endif pxx->XXX(); release的时候当然错了。 | |
| 11楼#发布于:2002-07-23 10:47 [quote]那debug怎么是好的[/quote] 比如: CXXX *pxx; #idef _DEBUG pxx = new CXXX; #endif pxx->XXX(); release的时候当然错了。 [/quote] 你这个是充分条件,不是必要条件。arthurtu也不会是这种问题吧?! :) | |
| 
 | 
| 12楼#发布于:2002-07-23 10:54 
					偶觉得也不会是这样的问题				 | |
| 
 | 
| 13楼#发布于:2002-07-23 10:54 
					呵呵,我只是示例给zydcat看看。
 我碰见的是因为没有检查返回的pointer是否为NULL就用了。原来以为不可能是NULL的。 | |
| 14楼#发布于:2002-07-23 15:23 内存方面的问题,以前我也遇到过,可能有一些变量没有分配内存,如指针变量,后面有访问了它,就会造成访问违例,好好检查一下,在debug下,vc会协助处理一些编程上的细节,检查不会很严格,在 同意,有时候也是因为变量没有赋初值等等。 access 00005 多是内存问题。 | |
| 
 | 
| 15楼#发布于:2002-07-23 16:57 
					0x00000005 正是边界检查错误代码,可以在2000DDK中查看详细的说明。				 | |
| 
 | 
| 16楼#发布于:2002-07-24 04:05 
					我碰到过的是一个对话框中的控件自己会触发另一个控件的消息,在InitDialog的时候形成了无限递归,我整整找了一个礼拜,才搞明白是怎么回事!可恶的ms,msdn里根本就没有说那个该死的控件的这个行为!				 | |
| 17楼#发布于:2002-07-24 09:30 
					建议使用
 try...catch...throw宏 如果还不行,能否将出错部分代码铁出来,大家好帮你分析 | |
 
							
 
				 
				
 
				 
				