我在程序中定义了CWnd* DateEditBoxFoucsed = NULL变量,在Debug模式下面一切正常,但是在Release模式下,DateEditBoxFoucsed 变量赋值不成功,不稳定,有时候赋上去的值会莫名其妙丢失,那位高手指点迷津,不胜感激!

解决方案 »

  1.   

    一般Debug正常,Release出错。都是因为Debug下,你的指针会被VC默认设一个初始值,但Release下,程序完全是由你的源代码进行控制。
    这类情况,楼主应该仔细检查源代码,重点检查指针和初始化部分的代码。
      

  2.   

    DateEditBoxFoucsed = NULL的话,不算是初始化吗?我在Release模式下跟踪了代码,赋值以后,在运行的过程中丢失了,跟到一定程度,就会出现汇编语言代码,实在没办法
      

  3.   

    或许可以设置个断点调试一下。有可能是release里面的优化功能优化点一些不会出现的代码。比如说if(nFlag==1)//其实如果nFlag一直都是等于3的话,会被优化掉这段代码。
    {
    while(xxxx)
    {
    xxxxx;
    }
    }
    所以可设置一下,工程->设置->选择win32 release ->c/c++选项->优化功能改成默认。。而不是最快速度
      

  4.   

    你确定是这句错了吗?还是编译器给的,编译器给的错误也许是更错的千万里.new
      

  5.   

    我在Release模式下面跟踪了代码,发现DateEditBoxFoucsed后来在我没有清空的情况下,变成了空值