プログラム終了時の Delphi でのメモリ リーク通知

デジタル人間とコンピューターの CPU

monsitj /ゲッティイメージズ





Delphi 2006 以降のすべての Delphi バージョンには、より高速で機能が豊富な更新されたメモリ マネージャがあります。

「新しい」メモリ マネージャの最も優れた機能の 1 つは、アプリケーションが予想されるメモリ リークを登録 (および登録解除) し、オプションでプログラムのシャットダウン時に予想外のメモリ リークを報告できるようにすることです。



Delphi で WIN32 アプリケーションを作成する場合、動的に作成したすべてのオブジェクト (メモリ) を確実に解放することが不可欠です。

プログラムが消費するメモリを解放できなくなると、メモリ (またはリソース) リークが発生します。



シャットダウン時にメモリ リークを報告する

メモリ リークの検出とレポートは、デフォルトで false に設定されています。これを有効にするには、グローバル変数 ReportMemoryLeaksOnShutdown を TRUE に設定する必要があります。

アプリケーションを閉じるときに予期しないメモリ リークが発生した場合、アプリケーションは [予期しないメモリ リーク] ダイアログ ボックスを表示します。

ReportMemoryLeaksOnShutdown の最適な場所は、 プログラムのソースコード (dpr) ファイル。

|_+_|

注: グローバル変数 DebugHook は、アプリケーションがデバッグ モードで実行されているとき (Delphi IDE から F9 キーを押したとき) にメモリ リークが確実に表示されるようにするために使用されています。



テスト ドライブ: メモリ リーク検出

ReportMemoryLeaksOnShutdown を TRUE に設定して、メイン フォームの OnCreate イベント ハンドラに次のコードを追加します。

|_+_|

アプリケーションをデバッグ モードで実行し、アプリケーションを終了します。メモリ リークのダイアログ ボックスが表示されます。



注: メモリ破損、メモリ リーク、メモリ割り当てエラー、変数初期化エラー、変数定義の競合、ポインタ エラーなどの Delphi アプリケーション エラーをキャッチするツールをお探しの場合は、以下をご覧ください。madExceptとエウレカログ

Delphi ヒント ナビゲータ