网络上找到大神写的转换方法,不过就记下来,学习学习;
当然转成CImage之后就可以从CImage转换成HBITMAP 了
void DrawPic(CDC *pDC,char *buf,int len) { //内存数据转换成流 HGLOBAL hMem=GlobalAlloc(GMEM_FIXED,len); BYTE* pMem=(BYTE*)GlobalLock(hMem); memcpy(pMem,buf,len); IStream* pStream; HRESULT hr=CreateStreamOnHGlobal(pMem,FALSE,&pStream); //画图 CImage img; img.Load(pStream); img.Draw(pDC->GetSafeHdc(),CPoint(0,0)); //清理 img.Destroy(); pStream->Release(); GlobalFree(hMem); }
帖子里同样也有了个疑问就是 GlobaLock 之后没有 unlock 大神给出的解释是:“这里用的固定块,GMEM_FIXED,没必要unlock”
标签:img,hMem,jpg,char,pStream,CImage,pMem From: https://www.cnblogs.com/kn-zheng/p/17001270.html