TNB Library
クラス | マクロ定義 | 関数
その他

クラス

class  CDriveCommander
 ドライブコマンダークラス [詳解]
 
class  CDynamicFuncT< FUNC >
 動的関数管理クラステンプレート [詳解]
 
class  CSingletonT< TYP >
 シングルトンテンプレート [詳解]
 
class  CTinyTestCase
 簡易テストケースフレームワーク. [詳解]
 
struct  CDriveCommander::TSenseData
 SCSI センスデータ型 [詳解]
 

マクロ定義

#define SINGLETON_CONSTRUCTOR(CLS)
 シングルトン作成マクロ [詳解]
 
#define TC_TRUE(X)
 簡易テストケースフレームワーク用 評価マクロ. [詳解]
 
#define TC_VOID(X)   ::OutputDebugString(_T(" ") _T(#X) _T(";\n")); X;
 簡易テストケースフレームワーク用 評価マクロ. [詳解]
 

関数

void DebugDump (size_t size, const void *pData, bool canAllDump=false, size_t width=16, bool isUnicode=false)
 [作成] バイナリダンプ. [詳解]
 
CStrVector DumpData (size_t size, const void *pData, bool canAllDump=true, size_t width=16, bool isUnicode=false)
 [作成] バイナリダンプ用文字配列作成. [詳解]
 
template<typename FUNC >
bool GetFuncAddress (FUNC &_pFnc, HINSTANCE hInstance, LPCSTR lpszName)
 動的関数アドレス取得関数 [詳解]
 

詳解

マクロ定義詳解

◆ SINGLETON_CONSTRUCTOR

#define SINGLETON_CONSTRUCTOR (   CLS)
値:
public: \
static CLS * GetInstance(void) \
{ \
return CSingletonT<CLS>::Get(_T(#CLS)); \
} \
private: \
CCopyImpossible m_cCopyImpossible; \
friend class CSingletonT<CLS>; \
CLS(void)
シングルトンテンプレート
Definition: TnbSingleton.h:87

シングルトン作成マクロ

シングルトンにしたいクラスのコンストラクタの宣言をこのマクロにします。
そうすると、new や スタック上でのインスタンスを禁止し、GetInstance()メソッドが
追加されます。
使用例
○宣言時
//CFooはシングルトンでしか使用できない
class CFoo
{
CStr m_strData;
{
m_strData = "ABC";
}
public:
CStr GetData(void){ return n_strData; }
};
#define SINGLETON_CONSTRUCTOR(CLS)
シングルトン作成マクロ
Definition: TnbSingleton.h:60
TNB::CStrT< TCHAR > CStr
文字列クラス
Definition: TnbStr.h:1785
○作成時
CFoo *pcFoo = CFoo::GetInstance();
printf( pcFoo->GetData() );
覚え書き
このマクロを実装し、シングルトンにするクラスには、 他にコンストラクタを作らないでください。
引数
CLSシングルトン化したいクラス。
必要ファイル
TnbSingleton.h
日付
06/04/26 新規作成

TnbSingleton.h60 行目に定義があります。

◆ TC_TRUE

#define TC_TRUE (   X)
値:
{ bool _R=X; if ( _R ) {::OutputDebugStringA(" ○ " #X ";\n"); }\
else { ::OutputDebugStringA(" × " #X ";\n"); ::Sleep(10); __TTC3("%s(%d): %s\n", __FILE__, __LINE__, "[" #X "]でアサートしました。"); \
ASSERT1(_R, NULL, "%s", "[" #X "]\n\n上記箇所でアサートしました。"); } m_TcTrue(_R); }

簡易テストケースフレームワーク用 評価マクロ.

覚え書き
CTinyTestCase のサブクラスの Test1()Test5() 内で使用します。
引数
Xbool になる評価式.

TnbTinyTestCase.h36 行目に定義があります。

◆ TC_VOID

#define TC_VOID (   X)    ::OutputDebugString(_T(" ") _T(#X) _T(";\n")); X;

簡易テストケースフレームワーク用 評価マクロ.

覚え書き
CTinyTestCase のサブクラスの Test1()Test5() 内で使用します。
引数
Xvoid になる評価式.

TnbTinyTestCase.h45 行目に定義があります。

関数詳解

◆ DebugDump()

void TNB::DebugDump ( size_t  size,
const void *  pData,
bool  canAllDump = false,
size_t  width = 16,
bool  isUnicode = false 
)

[作成] バイナリダンプ.

指定データを16進表記文字列に変換出力します。

覚え書き
デバグビルド時のみ処理します。
必要ファイル
TnbDump.h
引数
sizeDumpする長さ
pDataDumpするデータ
canAllDumptrue なら指定サイズDumpする。省略か false なら途中を省く。
width幅。省略すると16.
isUnicode省略か false なら S-JIS、 true なら UNICODE として表示します。

TnbDump.h153 行目に定義があります。

◆ DumpData()

CStrVector TNB::DumpData ( size_t  size,
const void *  pData,
bool  canAllDump = true,
size_t  width = 16,
bool  isUnicode = false 
)

[作成] バイナリダンプ用文字配列作成.

指定データを16進表記文字列に変換します。

必要ファイル
TnbDump.h
引数
sizeDumpする長さ
pDataDumpするデータ
canAllDump省略か true なら指定サイズDumpする。false なら途中を省く。
width幅。省略すると16.
isUnicode省略か false なら S-JIS、 true なら UNICODE として表示します。
戻り値
変換結果を格納している文字配列

TnbDump.h35 行目に定義があります。

◆ GetFuncAddress()

bool TNB::GetFuncAddress ( FUNC &  _pFnc,
HINSTANCE  hInstance,
LPCSTR  lpszName 
)

動的関数アドレス取得関数

引数
[out]_pFncFUNC関数型の実体(ポインタ)。
[in]hInstanceインスタンスハンドル。
[in]lpszName関数名。
戻り値
true取得成功
false失敗
使用例

    // 関数の型とポインタを宣言
    LONG (*pGetData)(LONG);
    // 動的管理クラス宣言&関数読み込み
    GetFuncAddress(pGetData, hModule, "GetData");       
    // 実行
    LONG l = pGetData(0);       
    

必要ファイル
TnbDynamicFunc.h
日付
06/12/08 新規作成

TnbDynamicFunc.h171 行目に定義があります。