プログラム終了時の Delphi でのメモリ リーク通知
monsitj /ゲッティイメージズ
Delphi 2006 以降のすべての Delphi バージョンには、より高速で機能が豊富な更新されたメモリ マネージャがあります。
「新しい」メモリ マネージャの最も優れた機能の 1 つは、アプリケーションが予想されるメモリ リークを登録 (および登録解除) し、オプションでプログラムのシャットダウン時に予想外のメモリ リークを報告できるようにすることです。
Delphi で WIN32 アプリケーションを作成する場合、動的に作成したすべてのオブジェクト (メモリ) を確実に解放することが不可欠です。
プログラムが消費するメモリを解放できなくなると、メモリ (またはリソース) リークが発生します。
シャットダウン時にメモリ リークを報告する
メモリ リークの検出とレポートは、デフォルトで false に設定されています。これを有効にするには、グローバル変数 ReportMemoryLeaksOnShutdown を TRUE に設定する必要があります。
アプリケーションを閉じるときに予期しないメモリ リークが発生した場合、アプリケーションは [予期しないメモリ リーク] ダイアログ ボックスを表示します。
ReportMemoryLeaksOnShutdown の最適な場所は、 プログラムのソースコード (dpr) ファイル。
|_+_|注: グローバル変数 DebugHook は、アプリケーションがデバッグ モードで実行されているとき (Delphi IDE から F9 キーを押したとき) にメモリ リークが確実に表示されるようにするために使用されています。
テスト ドライブ: メモリ リーク検出
ReportMemoryLeaksOnShutdown を TRUE に設定して、メイン フォームの OnCreate イベント ハンドラに次のコードを追加します。
|_+_|アプリケーションをデバッグ モードで実行し、アプリケーションを終了します。メモリ リークのダイアログ ボックスが表示されます。
注: メモリ破損、メモリ リーク、メモリ割り当てエラー、変数初期化エラー、変数定義の競合、ポインタ エラーなどの Delphi アプリケーション エラーをキャッチするツールをお探しの場合は、以下をご覧ください。madExceptとエウレカログ
Delphi ヒント ナビゲータ
- 日時 SQL クエリ: Delphi での Access SQL の日時値の書式設定
- キーボード ショートカットを使用して TListView の編集モードを強制する