宏,比如ASSERT(xObj->Release()==0);

解决方案 »

  1.   

    一般都是对内存的非法操作引起的,debug下的内存分配函数会帮你分配你所请求的更大的内存,所以即使写过头也不一定出错,release下的不同。
      

  2.   

    我的一个类成员函数调用了一个第三方SDK的API函数,该函数涉及
    内存操作,debug下一切正常,release异常,这个错让我一通好找,
    解决起来很简单,把他放到全局函数里调就好使了,也就是把这段内存
    放堆里就OK。
      

  3.   

    我却遇到过一些release版正确debug版出错的例子。
      

  4.   

    CMapStringToString ,debug all right ,release is crash
      

  5.   

    还有类似这样的代码(纯粹笔误)
    ASSERT(x=y)
    因为ASSERT宏只在DEBUG版中有定义!所以到了Release版中,x将不会被赋值!
      

  6.   

    线程通讯问题:
    BOOL endflag = true;  //全局变量
    线程过程:threadproc(LPVOID param)
    {
    .....
        endflag = false;
        AfxEndThread();
    }
    主线程:
    {
    AfxBeginThread(threadproc,NULL);.......
    while(endflag);      //等子线程结束
    }在DEBUG下主线程和子线程可以正常运行到结束,在RELEASE下,主线程会死在WHILE上,没有一点时间片流给子线程。所以我在主线程中将WHILE改为:while(endflag)Sleep(0);一切都正常了
      

  7.   

    debug编译时不作优化,release要优化,我碰到N次release优化致使程序出错的情况,
    关掉release优化就OK
      

  8.   

    greensleeve(绿袖子) :
    是这样等待子线程结束的啊,为什么不用waitforsingleobject
      

  9.   

    这是vc特色,vc的debug不能帮你找错。