- 879 名前:834 [2007/12/02(日) 07:46:48 ]
- おまいらなんでこんなに優しいん?
普段ボロクソ言われてるってのに(涙 一応宣言はこうなってる BYTE byTemp[CHUNK_SIZE + 1]; static BYTE *bySrc; それから >同じ変数で結果を受け取ると、NULLが返ってきたときに元の領域を解放する手段が なくなってしまってメモリリークする の部分を改善してみた bySrc = GlobalReAlloc(bySrc, dwTotal + 1, GMEM_MOVEABLE); if(bySrc == NULL){ wsprintf(szBuffer, TEXT("%d 回目の読み込みで、計%dByte(新たに%dByte)の確保に失敗しました。"), iCount + 1, dwTotal, dwRead); MessageBox(hwnd, szBuffer, TEXT("GlobaReAlloc Failure"), MB_OK | MB_ICONWARNING); GlobalFree(bySrc); bySrc = NULL; return -1; } あと、>bySrc + (CHUNK_SIZE * iCount) の部分 を memcpy(bySrc + dwTotal - dwRead, byTemp, dwRead); としたら、すべてうまくいきました!!!!!!!!!!!!!!!うれしいっす!!! 芋くさいコードだけど、晒してよかった・・ ひとつ問題が解決すると、ほんとに気持ちがいいな ありがとうな。お前ら
|

|