Tôi có một ứng dụng MFC trong C++ sử dụng std :: string và std :: wstring, và thường xuyên phôi từ một đến khác, và một toàn bộ rất nhiều vô nghĩa khác. Tôi cần phải tiêu chuẩn hóa mọi thứ thành một định dạng duy nhất, vì vậy tôi đã tự hỏi nếu tôi nên đi với CString hoặc std :: wstring. Trong ứng dụng, tôi sẽ cần phải tạo chuỗi từ một bảng chuỗi, làm việc với rất nhiều cửa sổ cuộc gọi yêu cầu con trỏ tchar hoặc wchar_t liên tục, Điều khiển chỉnh sửa và tương tác với API của đối tượng COM yêu cầu BSTR.Tôi sử dụng cấu trúc chuỗi ký tự rộng nào? CString vs wstring
Tôi cũng có vectơ chuỗi, vì vậy có bất kỳ vấn đề nào với vec tơ CStrings không?
Cái nào tốt hơn? Những ưu và nhược điểm của mỗi cái là gì?
Ví dụ
BSTR để wstring
CComBSTR tstr;
wstring album;
if((trk->get_Info((BSTR *)&tstr)) == S_OK && tstr!= NULL)
album = (wstring)tstr;
wstring để BSTR
CComBSTR tstr = path.c_str();
if(trk->set_Info(tstr) == S_OK)
return true;
nguồn String để wstring
CString t;
wstring url;
t.LoadString(IDS_SCRIPTURL);
url = t;
GetProfileString() trả về một CString.
số nguyên sang định dạng chuỗi:
wchar_t total[32];
swprintf_s(total, 32, L"%d", trk->getInt());
wstring tot(total);
Trùng lặp: http://stackoverflow.com/questions/485654/pros-and-cons-of-different-string-types-in-c http://stackoverflow.com/questions/133364/how-do- you-handle-strings-in-c –
Không thực sự là một bản sao - Tôi muốn so sánh hai trường hợp cụ thể của tôi, trong đó có ưu và khuyết điểm cho cả hai. – Vanwaril