博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IStream
阅读量:4298 次
发布时间:2019-05-27

本文共 664 字,大约阅读时间需要 2 分钟。

MSDN:

使用参考文章:

来源:http://www.cppblog.com/mythma/archive/2013/12/13/8384.html

问题:已知一块内存,知道里面是一张图片的数据,如何显示出来?

一种解决方法:

CImage(MFC or ATL)提供了一个加载内存中Image的成员函数HRESULT CImage::Load(IStream* pStream)。如何把指定的内存转换为IStream接口就成了需要解决的问题。最后发现获取一个ISteam还真是曲折:):

 

 void  LoadMemImage( void *  pMemData,  long  len)
 {
  HGLOBAL hGlobal  =  GlobalAlloc(GMEM_MOVEABLE, len);
   void *  pData  =  GlobalLock(hGlobal);
  memcpy(pData, pMemData, len);
  GlobalUnlock(hGlobal);
  IStream *  pStream  =  NULL;
   if  (CreateStreamOnHGlobal(hGlobal, TRUE,  & pStream)  ==  S_OK)
   {
   CImage image;
    if (SUCCEEDED(image.Load(pStream)))
    {
     //   .. 
 
   } 
   pStream -> Release();     
  } 
  GlobalFree(hGlobal); //这里似乎不需要释放。红色的TRUE表示Release会自动释放!

转载地址:http://renws.baihongyu.com/

你可能感兴趣的文章
Java:按值传递还是按引用传递详细解说
查看>>
全面理解Java内存模型
查看>>
Java中Synchronized的用法
查看>>
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
git 提示:error: unable to rewind rpc post data - try increasing http.postBuffer
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>