2011-11-11 45 views
5

Tôi là một loại mới cho C++, trong khi làm việc trên cửa sổ CE .net ứng dụng nhỏ gọnLàm thế nào để chuyển đổi wchar_t * để const char *

khi cố gắng ghi dữ liệu ngay hexa vào một tập tin

CString dataBlock1; 
dataBlock1 = ""; 

CString temp; 
for(int i = 0; i < rLen; i++) 
{ 
temp.Format(L"%02X ",rec[i]); 
dataBlock1 += temp; 

} 

std::ofstream out(file); 

tôi nhận được lỗi này không thể chuyển đổi thông số 1 từ WCHAR * để const char * trên khi sử dụng chức năng ghi dưới đây để viết dữ liệu ngay hexa vào một tập tin

out.write(myReader.dataBlock1.GetBuffer(),myReader.dataBlock1.GetLength()); 

thế nào có thể chúng tôi chuyển đổi wchar_ * thành const char * để làm cho hàm viết hoạt động.

Cảm ơn.

+0

[Cách chuyển đổi 'wchar_t *' thành 'const char *'] (http://stackoverflow.com/questions/7835119/how-to-convert-wchar-t-to-const-char). Nó không chỉ là một câu hỏi trùng lặp mà còn sử dụng 'CString' và có cùng một tiêu đề. – tenfour

Trả lời

3

Bạn có thể sử dụng chức năng wcstombs, tham chiếu here.

+0

Điều này dường như hoạt động .. Cảm ơn Thax – saroll

1

Windows có tập hợp các lớp và chức năng lấy wchar_t, là văn bản được lưu dưới dạng UTF-16 và char, là văn bản được lưu trữ trong bộ ký tự ANSI của bạn. Nếu bạn có con trỏ đến wchar_t, bạn cần phải sử dụng một lớp hoặc hàm thích hợp chấp nhận wchar_t, hoặc bạn cần chuyển đổi dữ liệu thành bộ ký tự ANSI của bạn.

Trong trường hợp này, bạn muốn biến thể wchar_t của luồng, wofstream.

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