class//debugFile

在視窗程式中,常常想使用printf()當作是debug工具,尤其是在使用指標指向物件時的物件內容、位址的變化,還有容器的debug的問題,只使用VC6的debug工具,其實是不夠的。所以只好自己寫了一個纪錄程式內容的類別,非常方便的可以在debug模式之中作用,在release中不作用。
並且使用幾個函式,就可以將程式的內容轉換成字元輸出成檔案。
在此,繼承純文字檔案處理的類別來加工使用。

debugFile.h

#ifndef DEBUGFILE_H
#define DEBUGFILE_H

#include "TxtFile.h"

#ifdef _DEBUG
#define DebugCode( code_fragment ) { code_fragment }
#else
#define DebugCode( code_fragment )
#endif

class debugFile
{
    TxtStrData m_outData;
public:
    void Clear();
    void Out2File(CString path);
    void Add(CString line);
};#endif
其中這段程式碼是從《軟體建構之道2》的防禦性程式設計中得到的方式
#ifdef _DEBUG
#define DebugCode( code_fragment ) { code_fragment }
#else
#define DebugCode( code_fragment )
#endif

debugFile.cpp

將程式內容記錄、清除

程式內容以字元(字串)的方式記錄成.txt的方式,以具技巧性的條件編譯,使發佈版本沒有這些功能。
void debugFile::Clear()
{
    DebugCode(
        m_outData.clear();
    )
}

void debugFile::Add(CString line)
{
    DebugCode(
        m_outData.push_back(line);
    )
}

將記錄的內容輸出成檔案

輸出成檔案,唯一的關鍵,就是存放的路徑(格式預設成最簡單的字元檔)
void debugFile::Out2File(CString path)
{
    DebugCode(
        CTxtFile fTxt;
        CFileException fx;
        fTxt.Save(path, fx);
        fTxt.iTxtData(m_outData);
        fTxt.Close();
    )
}

文章分類維度