在多线程中我使用DrawDibDraw画图,debug下运行良好,能出现,但调到release版本后根本就没反应,进去调试也进入到多线程了,但就是屏幕上无反应。
请问这种现象一般是什么原因!!

解决方案 »

  1.   

    变量未初始化?DEBUG版本在未初始化时会帮你做,所以没问题,但是Release版就不会了,所以可以去看下是否有这方面原因
      

  2.   

    没有啊,我重新初始化了还是不行
    看了传入的数据什么的都有的啊

    ::DrawDibDraw(hyPlayVid.hdib,
        m_hdc,
        local_wnd_x, // dest : left pos
        local_wnd_y, // dest : top pos
        local_rect.Width(),         // don't zoom x
        local_rect.Height(), // don't zoom y
        &m_bmpinfo->bmiHeader, // bmp header info
        rgbdata1, // 数据我都调试过了,debug版和release都是一样的
        0, // src :left
        0, // src :top
        IMAGE_WIDTH, // src : width
        IMAGE_HEIGHT, // src : height
        DDF_SAME_DRAW // use prev params....
    );
    就这么一个函数怎么就会出这种奇怪的错误呢
      

  3.   

    对于debug和release下现象的不同,可以考虑以下几个方面
    1. 注意变量的初始化,尤其是指针变量,数组变量的初始化(很大的情况下另作考虑了)。
    2. 自定义消息及其他声明的标准写法
    3. 使用调试宏时使用后最好注释掉
    4. 尽量使用try - catch(...)
    5. 尽量使用模块,不但表达清楚而且方便调试。