我正在尝试使用 GDI+ Bitmap 类将 IStream 转换为 HBITMAP。使用来自 Web 服务的数据填充 IStream 对象。我正在读取部分数据并将其附加到稍后与 Bitmap 类一起使用的对象中。
这是代码的相关部分
char data1[] = "";
int offset = 0;
LPTSTR pszString = NULL;
LPSTREAM lpStream = NULL;
CreateStreamOnHGlobal(NULL, TRUE, &lpStream);
StreamStringCopy ((LPSTREAM)lpStream, (LPCTSTR)"");
while(of->pread(&data1,1023,offset) > 0){
LPCTSTR tempStr = data1;
StreamStringCat ((LPSTREAM)lpStream, tempStr);
offset = offset + strlen(data1);
}
Bitmap bm(lpStream,FALSE);
bm.GetHBITMAP(Color.Black, &ret);
StreamStringCat 将字符串附加到 LPSTREAM 对象,因此我可以获得单个 LPSTREAM 对象。
循环仅在第一次运行良好。当再次进入 while 循环时,&data1 给出访问冲突异常。
有人可以告诉我应该如何解决这个问题。谢谢。