CFileDialog dlg(TRUE,NULL,NULL,NULL,"位图文件(*.bmp)|*.bmp||",NULL);
m_move.m_bmp=dlg.m_ofn.lpstrFile;
hbmp = (HBITMAP)LoadImage(NULL,m_move.m_bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
if (Hmdc==NULL)
{
MessageBox("载入图片失败");
}这几句在在debug 下打开正常
在realse下为什么打不开图片
Hmdc为NULL。
路径应该是没问题的。不然在debug下也不应该能打开还有,怎么把realse 改成debug
我是在组件配置里,直接把debug删除了。
怎么才能恢复?

解决方案 »

  1.   

    你的这段代码,没有人知道Hmdc是怎么创建的,你让别人怎么回答啊?
      

  2.   

    if (Hmdc==NULL) 应该是 if (hbmp==NULL)
    在debug版本下,Hmdc没有初始化,但是,会有一个不确定值!
    但是,在release版本下,初始值就是NULL
    所以,是否打开了,无论debug还是release都没有正确判断,debug判断是永远打开(即使没有打开),release判断永远打不开(即使打开了)。
      

  3.   

    Release会给你赋初值NULL的。你是VC6?
      

  4.   

    LZ漏了一句话了吧?CFileDialog dlg(TRUE,NULL,NULL,NULL,"位图文件(*.bmp)|*.bmp||",NULL); 
    dlg.DoModal(); 
    m_move.m_bmp=dlg.m_ofn.lpstrFile; 
    hbmp = (HBITMAP)LoadImage(NULL,m_move.m_bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
    if (Hmdc==NULL) 

    MessageBox("载入图片失败"); 
    } 连对话框都不显示,就想加载图片文件呀?那个m_move.m_bmp路径是空的,LoadImage当然失败了呀。
      

  5.   

    CFileDialog dlg(TRUE,NULL,NULL,NULL,"位图文件(*.bmp)|*.bmp||",NULL); 
    dlg.DoModal();
    m_move.m_bmp=dlg.m_ofn.lpstrFile; 
    hbmp = (HBITMAP)LoadImage(NULL,m_move.m_bmp,IMAGE_BITMAP,0,0,LR_LOADFROMFILE); 
    if (Hmdc==NULL) 

    MessageBox("载入图片失败"); 
    }