プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

便利C++のログ保存クラス

2014年04月05日 19時40分01秒 | 便利ライブラリ関数

ここは、普段自分専用に使ってるC++のクラス・ライブラリです。
メンバ関数(メンバ変数も含む)は public 属性と protected 属性のみを公開し private 属性は記述してません。
また、この普段自分専用に使ってるC++のクラス・ライブラリは、現在ソースを公開してません。(戻る)

  1. ログ保存のクラス (oemLogBuff)
  2. ログ拡張のクラス (oemExtBuff)
  3. ログ出力のクラス (oemOutBuff)
  4. ログ一覧のクラス (oemOutList)

ログ保存のクラス - oemLogBuff.h

class oemLogBuff {
protected:
    LPTSTR          m_logBuff;                  // ログ保存の先頭位置
    LPTSTR          m_logTail;                  // ログ保存の末尾位置
    LPTSTR          m_logStop;                  // ログ保存の最終位置
    DWORD           m_logSize;                  // ログ保存のサイズ数
public:
    // コンストラクタとデストラクタ
    oemLogBuff( DWORD dwInitSize=0 );
    ~oemLogBuff();
    // 取得関数
    LPTSTR getBuff();
    DWORD  getSize();
    DWORD  getAllocSize();
    // 操作関数
    VOID logClear();
    BOOL logEmpty( DWORD dwSize=0 );
    // 出力関数
    BOOL logPutc( TCHAR tcMoji );
    BOOL logPutb( LPCTSTR lpHead, LPCTSTR lpTail );
    BOOL logPutb( LPCTSTR lpString, DWORD dwSize );
    BOOL logPuts( LPCTSTR lpString );
    BOOL logPutf( LPCTSTR lpFormat, ... );
    BOOL logParam( LPCTSTR lpFormat, LPTSTR lpParam[] );
};

ログ拡張のクラス - oemExtBuff.h

class oemExtBuff : public oemLogBuff {
public:
    // 表示関数
    LONG msgBox( HWND hWnd, LPCTSTR lpTitle, UINT uType );
    LONG msgBoxInfo( HWND hWnd, LPCTSTR lpTitle, UINT uType );
    LONG msgBoxWarn( HWND hWnd, LPCTSTR lpTitle, UINT uType );
    LONG msgBoxError( HWND hWnd, LPCTSTR lpTitle, UINT uType );
    LONG msgBoxQuest( HWND hWnd, LPCTSTR lpTitle, UINT uType );
    // クリップボード
    BOOL clipBoard( HWND hWnd, BOOL cutTab=0 );
    // デバッガ
    VOID debugString();
    VOID debugString( LPCTSTR lpString );
};

ログ出力のクラス - oemOutBuff.h

// 記号定数
#define OEMOUTBUF_LINEUPPER     (0x0001)        // 上部罫線
#define OEMOUTBUF_HEADERMSG     (0x0002)        // 上部文字
#define OEMOUTBUF_SEPARATOR     (0x0004)        // 中間罫線
#define OEMOUTBUF_LINELOWER     (0x0008)        // 下部罫線

class oemOutBuff : public oemExtBuff {
public:
    // 操作関数
    VOID outHead( UINT nMask );
    VOID outAttr( DWORD dwAttrib );
    VOID outTime( LPFILETIME ft );
    VOID outTime( LPSYSTEMTIME st );
    VOID outSize( ULONGLONG u64Size, BOOL bDir=0 );
    VOID outUnit( ULONGLONG u64Size, BOOL bDir=0 );
    VOID outPath( LPCTSTR lpPath );
    // WIN32_FIND_DATA型
    BOOL getFileInfo( LPWIN32_FIND_DATA fdFile, LPCTSTR lpPath );
    VOID outFileInfo( LPWIN32_FIND_DATA fdFile, LPCTSTR lpPath );
    // BY_HANDLE_FILE_INFORMATION型
    BOOL getFileInfo( LPBY_HANDLE_FILE_INFORMATION byInfo, LPCTSTR lpPath );
    VOID outFileInfo( LPBY_HANDLE_FILE_INFORMATION byInfo, LPCTSTR lpPath );
    // ファイル情報
    BOOL getFileInfo( LPFILETIME ftCreate, LPFILETIME ftWrite, LPFILETIME ftAccess, DWORD* dwAttrib, ULONGLONG* u64Size, LPCTSTR lpPath );
    VOID outFileInfo( LPFILETIME ftCreate, LPFILETIME ftWrite, LPFILETIME ftAccess, DWORD  dwAttrib, ULONGLONG  u64Size, LPCTSTR lpPath );
};

ログ一覧のクラス - oemOutList.h

// 列挙定数(表示タイプ)
enum eOEMOUTLST {
    OEMOUTLST_PATH,     // ファイル&フォルダ
    OEMOUTLST_FILE,     // ファイルのみ
    OEMOUTLST_DIR,      // フォルダのみ
    MAX_OEMOUTLST,
};

class oemOutList : public oemOutBuff {
public:
    // 操作関数
    VOID listPath(     LPWIN32_FIND_DATA fdFile, LPTSTR lpPath, UINT eType );
    VOID listDetail(   LPWIN32_FIND_DATA fdFile, LPTSTR lpPath, UINT eType );
    VOID listDownload( LPWIN32_FIND_DATA fdFile, LPTSTR lpFile );
};

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 便利C++のクラス・ライブラ... | トップ | 便利C++の日付と時間クラス »
最新の画像もっと見る

コメントを投稿

便利ライブラリ関数」カテゴリの最新記事