Đoạn mã sau đây tạo cảnh báo C6284 khi được biên dịch với /analyze
trên đối tượng MSVC 2008: được chuyển thành tham số '% s' khi chuỗi được yêu cầu trong hàm gọi hàm.Làm thế nào để ngăn chặn C6284 khi sử dụng CString :: Format?
CString strTmp, str;
str = L"aaa.txt"
strTmp.Format (L"File: %s", str);
Tôi đang tìm kiếm một giải pháp tốt đẹp cho này mà không đòi hỏi static_cast
Tôi có sai hay giải pháp đúng là sử dụng 'str.GetBuffer()'? – sorin
Bạn có thể sử dụng cả cho tình huống của mình, nhưng chúng có ý nghĩa khác nhau đối với người đọc. 'GetBuffer()' trả về một bộ đệm chuỗi cho phép sửa đổi trực tiếp (không phải 'const') của đối tượng' CString' trong khi 'GetString()' trả về một bộ đệm 'const' để truy cập chỉ đọc. –