关于Image::FromStream的问题

jason176374 2008-10-29 10:01:49
使用Image::FromStream从内从中转换得到图像。使用如下代码

HGLOBAL mem = ::GlobalAlloc(GHND, size);
void* pbuff = ::GlobalLock(mem);
memcpy(pbuff, buffer, size);
::GlobalUnlock(mem);
delete [] buffer;

IStream* pstream;
CreateStreamOnHGlobal(mem, TRUE, &pstream);
pBitMap = Image::FromStream(pstream);

pstream->Release();
但是mem在什么时候释放呢?如果在这里释放的话,图像是显示不出来的。
谢谢
...全文
268 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason176374 2008-10-31
  • 打赏
  • 举报
回复
恩,如果不释放的话,内存增长很多。
看来还是要找地方释放一下
lzg0001 2008-10-29
  • 打赏
  • 举报
回复
跟我的问题一样,发生在由资源加载图片时,应该是 Image 对象自己不维护图片数据,我现在的作法是自己写一个类维护一个 Global 内存,将其与 Image 对象对应起来,在删除 Image 对象以后再释放 Global 内存,涉及对象复制时连同 Global 内存一起复制。这是临时性办法,很糟糕,但到现在为止没找到好的办法。个人感觉 GDI+ 在这点上作得很不好!

19,464

社区成员

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

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