(HBITMAP)::LoadImage(AfxGetInstanceHandle(),_T("c:\\iis\\device\\127453.bmp"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
这样可以正常载入图片,但是把第二个参数写成以下:
m_strPath.Format(_T("c:\\iis\\%s.bmp"),strDeviceNum);其中strDeviceNum就是_T(“127453”)
(HBITMAP)::LoadImage(AfxGetInstanceHandle(),m_strPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
这样就不能成功载入图片,这是什么原因呢?程序编码是UNICODE。

解决方案 »

  1.   

    参数写成m_strPath.GetBuffer()也不成
      

  2.   

    你看一下m_strPath里面的内容是什么?没记错的话应该如下写:
    m_strPath.Format(_T("c:\\\\iis\\\\%s.bmp"),strDeviceNum);
      

  3.   

    ("c:\\iis\\127453.bmp"), 少了\\device ,找不到该BMP了
      

  4.   

    没错没错,改成m_strPath.Format(_T("c:\\\\iis\\%s.bmp"),strDeviceNum);
    是成功了,不过有些不理解
      

  5.   

    AfxMessageBox输出你的m_strPath看看是什么就很清楚了~
      

  6.   

    不错为什么m_strPath.Format(_T("c:\\\\iis\\%s.bmp"),strDeviceNum);
    也成功了呢
      

  7.   

    刚试验时我敲错代码了以为本来的错了。是这样子的:
    m_strPath.Format(_T("c:\\iis\\%s.bmp"),strDeviceNum);//此处为_T("c:\iis\127453.bmp")
    (HBITMAP)::LoadImage(AfxGetInstanceHandle(),m_strPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//此处相当于传的是
    _T("c:\iis\127453.bmp")
    当改动代码后:
    m_strPath.Format(_T("c:\\\\iis\\\\%s.bmp"),strDeviceNum);//此处为_T("c:\\iis\\127453.bmp")
    (HBITMAP)::LoadImage(AfxGetInstanceHandle(),m_strPath,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);//此处相当于传的是
    _T("c:\\iis\\127453.bmp")

      

  8.   

    到底是c:\iis\device\127453.bmp
    还是c:\iis\127453.bmp
      

  9.   

    呵呵,是c:\iis\127453.bmp,我把两个目录下放的都有图片,让部长见笑了
      

  10.   

    不好意思,我误导大家了,刚试了一下是没成功,因为我忘了改loadimage下的参数,只改了format的参数,所以这问题还没有解决
      

  11.   

    加一行代码试试:TCHAR* tcRCName = m_strPath;
    (HBITMAP)::LoadImage(AfxGetInstanceHandle(),tcRCName ,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
      

  12.   

    多谢danxuezx热心帮忙,问题解决了,至于是什么情况我就不说了,好羞啊,我犯了一个很2的错误帖子结了,csdn的各位大大真的很热心,谢谢