1

是否可以将 WCHAR 转换为 CString?我需要这样做,甚至将其转换为 char 或 char*。

谢谢!

4

3 回答 3

2

CString具有接受char*wchar_t*数据作为输入的构造函数和赋值运算符。因此,您可以将它们直接分配给CString.

如果你想wchar_t*转换char*看看WideCharToMultiByte()

于 2014-07-02T22:19:53.163 回答
0

CString具有接受charchar*wchar_t构造函数 (如果您不了解 'WCHAR' 和 之间的区别wchar_t将是一个很好的参考。)

所以你可以这样做。

CString newCString(your_WCHAR);
于 2014-07-03T07:04:51.883 回答
0

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)  

-

ATL 和 MFC 字符串转换宏

于 2018-07-07T14:47:10.067 回答