BYTE*如何转化为Istream?

jianmin001 2008-03-12 10:31:54
如题。
刚接触VC不久,这个问题困扰我两天了。

现在在做个胸卡打印的程序,原来的程序是从硬盘读文件的,再显示的。现在想改成从数据库(SqlServer2000)中读取JPG文件,并显示之


谢谢有人解答
...全文
383 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianmin001 2008-03-13
  • 打赏
  • 举报
回复
谢谢crystal521的解答

感谢cofanz,我使用了你的代码,解决了问题!多谢····
scq2099yt 2008-03-12
  • 打赏
  • 举报
回复
跟直接显示区别不大,就是多了读数据库
cofanz 2008-03-12
  • 打赏
  • 举报
回复
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, nSize);

if(hGlobal == NULL)
{
return(FALSE);
}

void* pData = GlobalLock(hGlobal);
memcpy(pData, pBuffer, nSize);
GlobalUnlock(hGlobal);

IStream* pStream = NULL;

if(CreateStreamOnHGlobal(hGlobal, TRUE, &pStream) == S_OK)
Mr-Chen 2008-03-12
  • 打赏
  • 举报
回复

STATSTG statstg;
if(pStream->Stat(&statstg,STATFLAG_NONAME)==NOERROR)
{
ULONG nSize = statstg.cbSize.LowPart;
ULONG nRead=0;
PBYTE pData = new BYTE[nSize];
pStream->Read(pData,nSize,&nRead);
...
delete [] pData;
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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