У меня есть программа, в которой мне нужно использовать Format(); чтобы объединить строковый литерал и int в переменную CString. Я попробовал несколько различных способов сделать это, код для них здесь:Преобразование ошибок в C++
// declare variables used
CString _CString;
int _int;
// try to use format function with string literal
_CString.Format("text",_int);
// try to use format function with C-Style cast
_CString.Format((wchar_t)"text",_int);
// try to use format function with static_cast
_CString.Format(static_cast<wchar_t>("text"),_int);
Первый возвращает ошибку C2664: Пустота ATL :: CStringT :: Format (Const wchar_t *, ...) ' : невозможно преобразовать параметр 1 из 'const char [33]' в 'const wchar_t *'
Для второго нет ошибки, но текст появляется на иероглифах.
Третий возвращает ошибку C2440: 'static_cast': не может конвертировать из 'сопзЬ гольца [33]' к 'wchar_t'
Любые идеи для преобразования CStrings в wchar_t * S?
Благодаря
Это SUPER nitpicky, но с технической точки зрения вы не должны указывать переменные с именами, у которых есть знак подчеркивания, за которым следует заглавная буква. Эти имена зарезервированы реализацией для любого использования, которое они считают (в том числе злых макросов произвола). Просто подумал, что я бы назвал это как FYI. – templatetypedef