这样载入图片有什么优缺点吗?
看别人的源码,看到他载入图片用了如下代码.
- C/C++ code
void CKugouUIDlg::LoadResImage(int nResID,Image * &lpImage){ HINSTANCE hIns=AfxGetInstanceHandle(); HRSRC hRsrc = ::FindResource (hIns,MAKEINTRESOURCE(nResID),_T("PNG")); // type if (!hRsrc) return; // load resource into memory DWORD len = SizeofResource(hIns, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hIns, hRsrc); if (!lpRsrc) return; // Allocate global memory on which to create stream HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len); BYTE* pmem = (BYTE*)GlobalLock(m_hMem); memcpy(pmem,lpRsrc,len); IStream* pstm; CreateStreamOnHGlobal(m_hMem,FALSE,&pstm); // load from stream lpImage=Gdiplus::Image::FromStream(pstm); // free/release stuff GlobalUnlock(m_hMem); pstm->Release(); FreeResource(lpRsrc);}
想问问为什么要这样,有什么好处吗?
直接CImage *img;然后初始化的时候直接img = Image::FromFile((L"img/cal.png"));有什么缺点吗?
怎样载入图片资源比较好
求教了~
[解决办法]
这样发布的时候就不需要那个图片文件了,可以封装在 可执行文件的资源里。