如果你想「看到」 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項目 –