CDumpContext クラス
更新 : 2007 年 11 月
人が読み取ることができる形式でテキストを出力するために、ストリームに依存した診断出力をサポートします。
class CDumpContext
解説
CDumpContext には、基本クラスはありません。
CDumpContext の組み込みオブジェクトである afxDump オブジェクトを使って、大部分のダンプを行うことができます。afxDump オブジェクトを利用できるのは、Microsoft Foundation Class ライブラリのデバッグ バージョンだけです。
メモリ診断サービスの多くは、出力に afxDump を使用しています。
定義済みの afxDump オブジェクトは、概念的には cerr ストリームと同じです。Windows の環境では、出力は Windows 関数の OutputDebugString を使ってデバッガに送られます。
CDumpContext クラスには、CObject へのポインタに対するオーバーロードされた出力ストリーム演算子 (<<) があります。この演算子を使って、オブジェクトのデータをダンプできます。派生オブジェクトで独自のダンプ フォーマットが必要なときは、CObject::Dump をオーバーライドします。ほとんどの MFC (Microsoft Foundation class) にはオーバーライドできる Dump メンバ関数が実装されています。
CString、CTime、CTimeSpan などの CObject からの派生クラス以外のクラスは、固有の CDumpContext のオーバーロードされた出力ストリーム演算子を持ちます。これらは、CFileStatus、CPoint、CRect のような構造体を使います。
IMPLEMENT_DYNAMIC または IMPLEMENT_SERIAL マクロを組み込んで、クラスを実装したときは、CObject::Dump 関数を使って CObject 派生クラス名を表示できます。それ以外の場合は、CObject が表示されます。
CDumpContext クラスは、ライブラリのデバッグ バージョンでもリリース バージョンでも利用できます。しかし、Dump メンバ関数は、デバッグ バージョンだけで定義されます。#ifdef _DEBUG/#endif ステートメントに囲まれた診断コードで独自の Dump メンバ関数を使います。
独自の CDumpContext オブジェクトを作成する場合は、ダンプの出力先になる CFile オブジェクトをあらかじめ作成する必要があります。
CDumpContext の詳細については、「MFC のデバッグ技術」を参照してください。
#define _DEBUG
必要条件
ヘッダー : afx.h