簡體   English   中英

MFC-如何將WCHAR轉換為CString?

[英]MFC - How to convert WCHAR to CString?

是否可以將WCHAR轉換為CString? 我需要這樣做,甚至將其轉換為char或char *。

謝謝!

CString具有接受char*wchar_t*數據作為輸入的構造函數和賦值運算符。 因此,您可以將它們直接分配給CString

如果要將wchar_t*轉換為char*查看WideCharToMultiByte()

CHARWCHAR都可以使用CString 在其他地方,例如std::stringstd::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字符串轉換宏

CString具有接受charchar*wchar_t構造函數。 (如果您不了解'WCHAR'和wchar_t之間的區別, 將是一個很好的參考。)

因此,您可以這樣做。

CString newCString(your_WCHAR);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM