古いコードがあります。コードは次のように機能します:Event1
が発生した後、ウィンドウ オブジェクト ( CWindowImpl
class から継承) をヒープに作成します。が発生した後Event2
、ウィンドウで行われた変更を適用し、 を呼び出してウィンドウを閉じ、 を呼び出しDestroyWindow()
てヒープ内のメモリを解放しますdelete
。
このウィンドウのすべてのメッセージが処理される前にウィンドウ オブジェクトを削除するため、このコードはバグです。delete
window オブジェクトを呼び出しても安全な時期を確実に知る方法は?
私が見つけた唯一の解決策は、オーバーライドOnFinalMessage
してそこで呼び出すdelete this
ことです。オブジェクトがヒープでのみ作成されることを保証する必要があるため、私はそれが好きではありません。より良いアイデアはありますか?
ありがとうございました。