请问:程序Debug下没有关问题,但Release下出现了有关问题?看代码有几处用了 #ifdef _DEBUG,详细见内容

请教:程序Debug下没问题,但Release下出现了问题?看代码有几处用了 #ifdef _DEBUG,详细见内容
是一个画图程序。在CDrawView中的差别就是多了下面代码。下面代码的作用在Release怎么处理呢?还是因为有其它原因

#ifdef   _DEBUG
void   CDrawView::AssertValid()   const
{
CScrollView::AssertValid();
}

void   CDrawView::Dump(CDumpContext&   dc)   const
{
CScrollView::Dump(dc);
}
#endif   //_DEBUG

这种问题都不好跟踪。不会处理了。谢谢指点。


------解决方案--------------------
在Release以上代码就不处理了
------解决方案--------------------
#ifdef _DEBUG
定义了_DEBUG
才会执行下面的代码

release下没有这个宏定义_DEBUG

------解决方案--------------------
是对的,你可以把去掉#ifdef _DEBUG #endif //_DEBUG
就都可以执行了。
------解决方案--------------------
恩,一般DEBUG和 RELEASE ,如果在前者没错,不代表后者没错。返回去看看自己的代码,最好随时用日志文件记录你的错误,不然还在真不好找。

至于你上面说到的,根本不关事。在release中上面那段代码直接被忽略了。
------解决方案--------------------
上面的代码在Release版本中就没有了。
------解决方案--------------------
我觉得和上面的代码关系不大。
似乎Debug和Release的版本的变量初始化值是不同的,你找找程序其他地方有没有变量没初始化试试。
------解决方案--------------------
帮LS的补充一下,Debug和Release的区别还体现在堆内存和栈内局部变量的分配上,Debug版一般会有富余,Release安排的更紧凑一些。

LZ看来是新写程序,最基本的一条准则:如果你的程序出错,那么绝对是你的错,不要认为是系统或编译器的问题。
------解决方案--------------------
说明你的程序存在问题,最好跟踪调试一下
------解决方案--------------------
最好检查一下是否有TRACE 或者 ASSERT.在Release下不调用
------解决方案--------------------
是不是什么变量没有初始话,DEBUG会为你初始话,而RELEASE不会.
------解决方案--------------------
上面那2个函数不影响的,仔细找找应该还是代码的问题
------解决方案--------------------
#ifdef _DEBUG
把这个去掉就可以了
我昨天就是遇到这样的情况
去掉#ifdef _DEBUG以后就好了
不知道你的是不是也是一样的原因