C++Builder相談室 Part15
■ このスレッドは過去ログ倉庫に格納されています
0860デフォルトの名無しさん
2006/01/12(木) 17:26:59void __fastcall TForm1::Button1Click(TObject *Sender)
{
//A
BYTE *p = new BYTE[ 640*480*4 ];
Memo1->Lines->Add( (DWORD)p );
//B
Graphics::TBitmap *Image = new Graphics::TBitmap;
Image->PixelFormat = pf32bit;
Image->Width = 100;
Image->Height = 100;
Image->Canvas->FillRect( TRect( 0, 0, 99, 99 ) );
delete Image;
//C
delete[] p;
}
Button1を押すと初回と二回目以降でアドレス変わるし
二回目以降に受け取る領域はStretchDIBits()の転送元にしようとしても失敗する
(A→C→Bと並び換えたり、確保する領域を310432バイト以下にすると問題は起きない)
VCのソースを基に自作したmalloc()とfree()を組み込んで回避したけど
新しいビルダーでは直ってるかな
■ このスレッドは過去ログ倉庫に格納されています