我在获取图象指针后lpBitmap
然后填充DIBSECTION
总是出现debug assertion failed 
虽然可以忽略,不过不知道为什么
请各位大吓援助援助

解决方案 »

  1.   

    源程序是这样的
    lpBitmap->GetObject((sizeof(DIBSECTION), &ds) ;lpBitmap为图象指针
      

  2.   

    dibSrc.GetObject(sizeof(ds), &ds
      

  3.   

    还是不行
    因为我是从文档传过来的位图指针,是从loadimage得到句柄之后用m_bitmap.attach得到的
    没有得到dibSrc
      

  4.   

    void CDib::Initialize()
    {
    LTRACE(_T("CDib::Initialize : initialize members from m_hObject\n"));
    ASSERT(m_hObject != NULL);// should be already attached
    ASSERT(m_lpBmih == NULL);

    RGBQUAD colors[MAXPALCOLORS];
    m_cEntries = GetColorTable(colors, MAXPALCOLORS); DIBSECTION ds; VERIFY(GetObject(sizeof(ds), &ds) == sizeof(ds));
    int nSize = sizeof(BITMAPINFOHEADER) + m_cEntries * sizeof(RGBQUAD);
    BYTE* pBuf = new BYTE[nSize];
    m_lpBmih = reinterpret_cast<LPBITMAPINFOHEADER>(pBuf); // copy info header except color table
    memcpy(m_lpBmih, &ds.dsBmih, sizeof(BITMAPINFOHEADER));
    // copy color table
    memcpy((m_lpBmih + 1), colors, m_cEntries * sizeof(RGBQUAD));
    }
      

  5.   

    loadimage好像你的图片颜色数有限制,至少不能用32色的图片。
      

  6.   

    我是24位的没有用到位图,loadimage 是可以的,