【发布时间】:2014-08-23 21:11:06
【问题描述】:
是否可以将 WCHAR 转换为 CString?我需要这样做,甚至将其转换为 char 或 char*。
谢谢!
【问题讨论】:
是否可以将 WCHAR 转换为 CString?我需要这样做,甚至将其转换为 char 或 char*。
谢谢!
【问题讨论】:
CString 具有接受char* 和wchar_t* 数据作为输入的构造函数和赋值运算符。所以你可以直接将它们分配给CString。
如果您想将wchar_t* 转换为char*,请查看WideCharToMultiByte()
【讨论】:
CString 具有接受char、char* 和wchar_t 的构造函数。
(如果你不明白'WCHAR'和wchar_t的区别,this会是一个很好的参考。)
所以你可以这样做。
CString newCString(your_WCHAR);
【讨论】:
CString 可以同时使用 CHAR 和 WCHAR。在其他地方,例如std::string & std::wstring,使用MFC字符串转换宏:CW2A(pszW)
CHAR B[32]{ "The Matrix Has You" };
WCHAR WB[32]{ L"Wake up, Neo." };
std::string str;
std::wstring wstr{ L"Follow the White Rabbit" };
// std::string from std::wstring:
str = CW2A(wstr.c_str());
// CString (OK with both CHAR & WCHAR):
CString str1{ B };
CString str2{ WB };
CString str3{ str.c_str() };
CString str4{ wstr.c_str() };
// std::string from CString:
str = CW2A(str1);
-
MFC 通用宏集如下:
A2CW (LPCSTR) -> (LPCWSTR)
A2W (LPCSTR) -> (LPWSTR)
W2CA (LPCWSTR) -> (LPCSTR)
W2A (LPCWSTR) -> (LPSTR)
-
【讨论】: