CXImage库,在codeproject网站上可以下载源码。

解决方案 »

  1.   

    gdi+ 可以从流(IStream) 打开文件, 把内存转换成流, 比较简单的HBITMAP NGdi::LoadBitmap(BYTE *pImgDat, int nSize)
    {
    Gdiplus::Bitmap *pBm;
    Gdiplus::Color crBk;
    Gdiplus::Status nRetVal;
    IStream *pStream;
    HGLOBAL hMem;
    VOID *pDat;
    HBITMAP hBitmap; crBk = Gdiplus::Color::White;
    GdiPlusInit();
    hMem = GlobalAlloc(GMEM_FIXED, nSize);
    CreateStreamOnHGlobal(hMem, FALSE, &pStream);
    pDat = GlobalLock(hMem);
    memcpy(pDat, pImgDat, nSize); pBm = pBm->FromStream(pStream);
    nRetVal = pBm->GetHBITMAP(crBk, &hBitmap);
    delete pBm; GlobalUnlock(pDat);
    GlobalFree(hMem);
    pStream->Release();
    return hBitmap;
    }
      

  2.   

    请问GdiPlusInit中是gdi+的常规初始化吗 
      

  3.   

    是我搞错了,今天又试了一下,OleLoadPicture支持jpg格式,但MSDN上说不支持。
      

  4.   


        HANDLE hNulFile = CreateFile("NUL", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        si.hStdInput = hNulFile;