J'ai un problème avec mon application MFC. Lorsque j'essaie de désérialiser CBitmap de l'archive et de créer une nouvelle CBitmap, elle ne charge pas correctement les bits de CBitmap.Deserialize Bitmap from Archive
Voici le code:
BITMAP bm;
ar >> bm.bmType;
ar >> bm.bmWidth;
ar >> bm.bmHeight;
ar >> bm.bmWidthBytes;
ar >> bm.bmPlanes;
ar >> bm.bmBitsPixel;
int nSize = bm.bmWidth * bm.bmHeight;
bm.bmBits = new BYTE[nSize];
ar.Read(bm.bmBits, nSize);
CBitmap* tmp = new CBitmap;
tmp->CreateBitmapIndirect(&bm);
BITMAP bmi;
tmp->GetBitmap(&bmi);
HBITMAP hNew = (HBITMAP)CopyImage((HBITMAP)(*tmp), IMAGE_BITMAP,
bmi.bmWidth, bmi.bmHeight, LR_CREATEDIBSECTION);
m_bmp.Attach(hNew);
delete tmp;
Après je tmp-> GetBitmap (& bmi); Je reçois NULL dans le champ bmi.bmBits.
Quel est le problème avec cela? Comment puis-je le faire fonctionner?
P.S. Je ne dois pas utiliser la sérialisation dans le fichier * .bmp.
Merci d'avance, Mike.
Merci beaucoup, Nikola !!! Ça marche vraiment! Dieu te bénisse!!! – Mike