谢谢你的关注!问题是这样的:
同一个项目(.net),在debug和release模式下生成,都没有编译和其他生成期的错误。但奇怪的是,有一段逻辑处理,运行debug调试版本时是正常的,但在release版本运行中就不正常了。我感到迷惑的是项目生成配置层面的设置,怎么会影响到源代码执行逻辑?

解决方案 »

  1.   

    这个很正常,release会对执行步骤做优化。这些优化可能会改变程序执行逻辑。我之前有个项目多线程的,Debug没问题,Release就一直出错,参考下面这位兄弟的:Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。在DEBUG模式下运行正常,而RELEASE版本经常有问题,这种情况下,你应该自己检查自己的代码写得是否严密。以下是一些注意事项:
    1. 注意变量的初始化,尤其是指针变量,数组变量的初始化
    2. 自定义消息及其他声明的标准写法
    3. 使用调试宏时使用后最好注释掉
    4. 尽量使用try - catch(...)
    5. 尽量使用模块,不但表达清楚而且方便调试。还要注意多线程的死锁问题,在release中比debug中麻烦好多。对于COM接口参数的准确使用。release是没有内存保护区的,在使用之前要记得检查指针是否正确。
      

  2.   

    谢谢大家关注。具体代码跨越了多个代码块,比较零散不好展现。基本定位就在于界面层的代码上。逻辑就是这样的,下层更新一个列表中某个元素的一个字符串字段的值,并显示在界面上。在DEBUG模式下,每次显示的值都是正确的,在RELEASE运行版本中,偶尔能够显示正确,更多的情况是显示了另外一个字段的值。