Проблема в том, что вы выполняете сборку UNICODE (что нормально), поэтому функция
_CString.Format();
я ожидаю, что первый параметр будет строкой широких символов.Вам нужно использовать синтаксис L""
для формирования строкового литерала широких символов:
_CString.Format(L"text",_int);
Конечно, вам понадобится спецификатор для фактического получения переменной int
, отформатированной в CString:
_CString.Format(L"text: %d",_int);
Если вы включите заголовок tchar.h
, вы можете использовать макросы Microsoft, чтобы сделать строковый литерал широким или обычным старым символом (иначе известный как ANSI) в зависимости от того, создаете ли вы UNICODEили нет:
_CString.Format(_T("text: %d)",_int);
но я бы сказал, что если вы не планируете поддерживать устаревшие компоненты, для которых потребуется поддержка ANSI, я, вероятно, не буду беспокоиться о компонентах tchar.h
.