将jpeg保存在磁盘中的代码:
fwrite( dataPosition, 1, BufferSize, hFileImage );
该代码工作正常。 但是当我尝试读取数据流时,出了点问题:
HGLOBAL hGlobal = GlobalAlloc(GMEM_FIXED, BufferSize);
CComPtr<IStream> spStream;
HRESULT hr = CreateStreamOnHGlobal(NULL, TRUE, &spStream);
ULONG pcbWritten;//don't understand what it is
spStream->Write(dataPosition, BufferSize, &pcbWritten);
pImage = new Image(spStream, FALSE);
之后,似乎流(和pImage)是空的。我不确定我做错了什么?
答案 0 :(得分:0)
在您写入流后,您可能应该将IStream::Seek
流添加到其开头,以便跟随Image
构造函数可以读取数据,而不是立即到达流的末尾。
static const ULONGLONG g_nZero = 0;
HRESULT nSeekResult = pStream->Seek(reinterpret_cast<const LARGE_INTEGER&>(g_nZero),
STREAM_SEEK_SET, NULL);