通知
すべてクリア
Topic starter
2003年9月18日 10:14 PM
ふと疑問に思ったのですが次のようなプログラムを実行したとき
GDIはちゃんと解放されるのでしょうか
HPEN hPen = CreatePen(PS_SOLID,1,RGB(255,0,0));
hPen = CreatePen(PS_SOLID,1,RGB(0,255,0));
DeleteObject(hPen);
2003年9月19日 9:48 AM
解放されないはず。
同じようなことをブラシで行った場合、
数万回でブラシが作成できなくなりました。
ご確認ください。
2003年9月19日 1:25 PM
APIでCreateしたGDIリソースはDeleteObjectしないと開放されません。
書かれている例の場合、あとでCreateした分は開放されますが、
最初にCreateした分のハンドルが消失してしまい、開放したくても開放できないです。
ハンドルを保持する変数を二つ用意してそれぞれDeleteObjectするか、
二つ目のPenをCreateする前に最初にCreateしたPenを開放しないと
リソースがリークしてしまいます。
Topic starter
2003年9月19日 5:20 PM
やっぱりそうでしたか。
こんな些細な質問にご返答してくださってありがとうございました。