35inline CStrVector DumpData(
size_t size,
const void* pData,
bool canAllDump =
true,
size_t width = 16,
bool isUnicode =
false)
42 size_t bufferLength = (21 + width * 3 + width + 8);
44 LPTSTR lpszBuffer = buffer.
Ref();
45 const BYTE* B =
reinterpret_cast<const BYTE*
>(pData);
46 bool isLastSecondByte =
false;
47 for (
size_t j = 0; j < size; j += width )
77 if ( isLastSecondByte )
79 isLastSecondByte =
false;
82 else if ( c >= 0 && c < 0x20 )
88 if ( (i + j + 1) < size )
92 isLastSecondByte =
true;
116 uni.
SetFromLeft(
reinterpret_cast<LPCWSTR
>(&B[j]), i / 2);
123 if ( j >= width * 4 )
125 isLastSecondByte =
false;
127 size_t k = (size - width * 4) & 0xFFFFFFF0;
153inline void DebugDump(
size_t size,
const void* pData,
bool canAllDump =
false,
size_t width = 16,
bool isUnicode =
false)
156 #if defined(_DEBUG) && ! defined(_WIN32_WCE)
157 #if ( _WIN32_WINNT >= 0x0400 ) || ( _WIN32_WINDOWS > 0x0400 )
158 #define _DEBUGDUMP_ENABLE
159 r = !! ::IsDebuggerPresent();
162 #if defined(_DEBUG) && defined(_WIN32_WCE)
163 #define _DEBUGDUMP_ENABLE
166 #ifdef _DEBUGDUMP_ENABLE
169 ::OutputDebugString(
CStr::Fmt(_T(
">Size = %u\n"), size));
173 ::OutputDebugString(_T(
" ") + sa[i] + _T(
"\n"));
#define loop(VAR, CNT)
loop構文.
static CStrT Fmt(const TCHAR *lpszFormat,...)
[作成] 書式付き文字列作成
CStrT & SetFromLeft(const TYP *lpText, size_t iLen)
[代入] 文字数制限代入.
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
const TYP * Ref(void) const
[取得] ポインタ取得
CStrVector DumpData(size_t size, const void *pData, bool canAllDump=true, size_t width=16, bool isUnicode=false)
[作成] バイナリダンプ用文字配列作成.
void DebugDump(size_t size, const void *pData, bool canAllDump=false, size_t width=16, bool isUnicode=false)
[作成] バイナリダンプ.
int GetCharSize(char c)
[取得] 文字のサイズ(ASCII/SJIS用)
TNB::CStrT< WCHAR > CUnicode
UNICODE文字列クラス
TNB::CStrT< TCHAR > CStr
文字列クラス
void IgnoreUnusedValue(const T &value)
[宣言] 参照しない値宣言.