这样载入图片有什么优缺点吗?

亚克 2012-02-25 09:50:44
看别人的源码,看到他载入图片用了如下代码.

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"));有什么缺点吗?
怎样载入图片资源比较好
求教了~
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Saleayas 2012-02-25
  • 打赏
  • 举报
回复
这样发布的时候就不需要那个图片文件了,可以封装在 可执行文件的资源里。
ttktw 2012-02-25
  • 打赏
  • 举报
回复
FromFile就是这样封装的吧
亚克 2012-02-25
  • 打赏
  • 举报
回复
原来是这样.懂了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧