2011-10-20 127 views
6

如何將'wchar_t *'轉換爲'const char *'?如何將'wchar_t *'轉換爲'const char *'

使用C++ MFC VS2010。

謝謝。

+1

如果是MFC,你真的有CString嗎?我幾個版本已經過時了,但是他們使用了CString類型的LPCSTR類型的轉換操作符來爲您進行轉換。你甚至可以從廣泛的字符串中構造一個CStringA,並將它轉換爲你。 – Rup

+0

這個問題的技術答案在隔離中很少有用。 _爲什麼你需要這樣做?例如。如果要通過回調接口傳遞指針,則直接轉換就可以了。 – MSalters

+0

我需要用CHAR名稱[256]填充結構;但我有wchar_t *而不是char *。 – Cynede

回答

6

由於問題是關於MFC,我建議如下:

CStringA a = "Test"; 
CStringW w = L"Test"; 
a = CStringA(w); 
w = CStringW(a); 

我通常都需要進行以下轉換:

CString t = _T("Test"); // depends on TCHAR type 
a = CStringA(t); // does not depend on TCHAR type 
w = CStringW(t); 

CStringW和CStringA有運營商LPCWSTR和LPCSTR respectivelly。

相關問題