如果你想“看到” CString
为是一个简单的“原始”序列(阵列)的内容,你可以使用CString::GetString()
方法得到的指针到第一CString
字符,然后转换为const BYTE*
:
CString str;
....
const BYTE* pb = reinterpret_cast<const BYTE*>(str.GetString());
如果你想“看”的单一wchar_t
为的顺序,你可以把它的地址并重新转换为const BYTE*
:
wchar_t wch;
....
const BYTE* pb = reinterpret_cast<const BYTE*>(&wch);
但是,如果你想从Unicode UTF-16转换为像UTF-8编码的另一个,你可能需要使用一些conversion helpers like CW2A
:
CString strUtf16; // Assume UNICODE builds (the default since VS2005)
....
// Convert from UTF-16 to UTF-8
CW2A strUtf8(strUtf16, CP_UTF8);
// Convert (cast) to const BYTE*
const BYTE* pb = reinterpret_cast<const BYTE*>(static_cast<const char*>(strUtf8));
也许尝试CT2CA宏? – Smash
它是UNIDOCDE还是ANSI项目? –
Unicode项目 –