2011-10-20 40 views
6

Làm cách nào để chuyển đổi 'wchar_t *' thành 'const char *'?Cách chuyển đổi 'wchar_t *' thành 'const char *'

sử dụng C++ MFC VS2010.

Cảm ơn bạn.

+1

Nếu đó là MFC, bạn có thực sự có CString không? Tôi là một vài phiên bản lỗi thời, nhưng họ đã sử dụng toán tử cast cho LPCSTR trên các kiểu CString sẽ thực hiện chuyển đổi cho bạn. Bạn thậm chí có thể chỉ cần xây dựng một CStringA từ chuỗi rộng và có nó chuyển đổi nó cho bạn. – Rup

+0

Câu trả lời kỹ thuật cho câu hỏi này hiếm khi hữu ích trong sự cô lập. _Tại sao bạn cần phải làm điều này? Ví dụ. nếu nó vượt qua một con trỏ thông qua một giao diện gọi lại, một diễn viên đơn giản là OK. – MSalters

+0

Tôi cần phải điền vào cấu trúc với CHAR Name [256]; nhưng tôi đã có wchar_t * thay vì char *. – Cynede

Trả lời

9

Tra cứu chức năng của wcstombs trên MSDN.

6

Như câu hỏi là về MFC, tôi xin đề nghị như sau:

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

Tôi thường cần chuyển đổi sau:

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

CStringW và CStringA có nhà khai thác LPCWSTR và LPCSTR respectivelly.

Các vấn đề liên quan