質問: NULL; のように破棄しているのですが、ネットを検索するとサンプルとして bmp->Free() としている所が散見されました。 生成~破棄までは1つの関数内で完結しています。 破棄の処理としてはどちらが正しいでしょうか? 古いためかネット検索でも目的の情報がなかなか見つからず ご存知の方がいらっしゃいましたらご教授願えませんでしょうか。
回答: この Graphics::TBitmap は C++ Builder のクラスライブラリ(VCL)が独自で定義しているクラスで、直接 Windows GDI オブジェクトである Windows::TBitmap とは異なります。 VCL は割ときちんとデストラクタで処理するので delete で問題無いかと思いますが、Windows::TBitmap だと後始末がいろいろあったりするので、デストラクタではなく Free を呼び出さねばならない、とかだったような。 最終的には Graphics::TBitmap のデストラクタと free() の実装を見ないと判断できないですが。 ※この GDI オブジェクトが出てくると、最新の VC# であっても明示的な解放動作が必要になります、余談ですが。