GDI+ Bitmap クラスを使用して IStream を HBITMAP に変換しようとしています。IStream オブジェクトは、Web サービスからのデータを使用して設定されています。データを部分的に読み取り、後で 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 はアクセス違反の例外を発生させます。
この問題を解決する方法を教えてください。ありがとう。