Например:
Код: Выделить всё
CA2CT [*]CW2T [*]CA2W
Если я вернусь к C++17, это нормально.
Почему?
Вот пример:
Код: Выделить всё
CLSID AppCLSID ;
if (SUCCEEDED(::CLSIDFromProgID(CT2W(rstrProgID), &AppCLSID) ) )
{
LPOLESTR pszName = NULL ;
if (SUCCEEDED(::ProgIDFromCLSID(AppCLSID, &pszName) ) )
{
CString strAppID = CW2T(pszName);
}
}
В приведенном выше конкретном случае ошибка:
ошибка C2440: 'инициализация': невозможно преобразовать из ATL::CW2W в ATL::CStringT
Другие фрагменты кода в качестве примеров:
Пример 2
Код: Выделить всё
CString strCalendarName = CA2CT(pName->GetText(), CP_UTF8);Обновить
Выполнение того, что говорит @Inspectable, решает одну проблему.
Остальные (примеры), которые не компилируются такие:
Код: Выделить всё
std::string s1 = CT2A(strNameText);
CString strStudent1 = CA2CT(pElement1->GetText(), CP_UTF8);
Подробнее здесь: https://stackoverflow.com/questions/699 ... -specified
Мобильная версия