CMemoryState基本クラスがありません。
CMemoryStateプログラムでメモリ リークが発生を検出する便利な方法を提供します。「メモリ リーク」は、オブジェクト メモリをヒープ上に割り当てが不要になったとき割り当てが解除されない場合に発生します。このようなメモリ リークは、最終的にメモリ不足エラーを可能性があります。割り当てるし、プログラムのメモリの割り当てを解除するには、いくつかの方法があります。:
CMemoryState診断のみ新しい演算子を使用してメモリを割り当てるときに発生するメモリ リークしない解除削除を使用しての検出に役立ちます。C++ 以外のプログラムを混合し、新しいメモリ管理機能の他の 2 つのグループは、同じプログラムの削除は推奨されません。追加マクロ、 DEBUG_NEWファイルと行番号の追跡のメモリ割り当てを必要とするときに、新しい演算子を置き換えるために提供されます。通常、 new演算子を使用するたびにDEBUG_NEWが使用されます。
他の診断と同様に、 CMemoryState診断のみプログラムのデバッグ バージョンで利用可能です。デバッグ バージョン_DEBUG定数を定義する必要があります。
プログラムでメモリ リークが疑われる場合、チェックポイント差、およびDumpStatistics関数メモリの状態 (割り当てられているオブジェクト) の間の違いを発見する 2 つの異なるポイントでプログラムの実行できます。この情報は関数の割り当てのすべてのオブジェクトをクリーンアップかどうかを決定する際に役に立つことができます。
単に割り当てと割り当て解除の不均衡が発生した場所を知ること十分な情報が提供されない場合は、チェックポイントが以前の呼び出しから割り当てられたすべてのオブジェクトをダンプするには、 DumpAllObjectsSince関数を使用できます。このダンプ割り当て、ソース ファイルとは、オブジェクトが割り当てられた (、 DEBUG_NEW割り当てを使用している場合)、行の順序を示していますと、派生オブジェクト、そのアドレスとそのサイズの。DumpAllObjectsSinceもその現在の状態に関する情報を提供するために、各オブジェクトのダンプの関数を呼び出します。
CMemoryStateその他の診断を使用する方法についてを参照してください デバッグ サポートを MFCでVisual の C++ プログラマのガイド。
注特価;宣言型CMemoryStateのオブジェクトのメンバー関数への呼び出しはで囲む必要があります #if defined(_DEBUG)/#endif
ディレクティブ。これにより、プログラムのビルドをデバッグにのみ含まれるメモリ診断(&N)。