普通情况下,我可以用 CImage load 直接从本地磁盘加载图形资源
但是如果,我要是把资源放在ZIP包里面了,并且已经通过ZLIB解压了,但是该如何加载呢 PackReader _r; // 加载普通的ZIP
if (_r.Open("example.zip", NULL))
{
const char* file = "image1.bmp";
uLong size = _r.GetFileSize(file);
char* buf = new char[size + 1];
memset(buf, 0, size + 1); _r.ReadFile(file, buf, size); printf("%s\n", buf);
printf("%s\n", buf+10);
printf("%s\n", buf+14); delete buf; _r.Close();
}

解决方案 »

  1.   

    解压到哪个地方了?取得解压后图片的完整路径strPath,直接m_Image.Load(strPath);就行了。
      

  2.   

    那就要 知道 zip 文件的格式,网上有的。
      

  3.   


            用unzip库
    ZIPENTRY ze;
    int i; 
            Bitmap* pImage;
    FindZipItem(hSkin,strNameInZip,true,&i,&ze);
    HGLOBAL hGlobal  =  GlobalAlloc(GMEM_MOVEABLE, ze.unc_size);
    void *  pData  =  GlobalLock(hGlobal);
    UnzipItem(hSkin,i, pData, ze.unc_size);
    GlobalUnlock(hGlobal);
    if  (CreateStreamOnHGlobal(hGlobal, TRUE,  &pStream)  ==  S_OK)
    {
    pImage = new Bitmap(pStream);
    if (pImage->GetLastStatus()!=Ok)
    {
    delete pImage;
    pImage = NULL;
    }
    }