Я хочу конвертировать _variant_t
в CString
и используйте это:
#define VartToCStr(vart) (_variant_t(vart)).bstrVal
Если я передам значение CString
это просто работает нормально, но для CString::Format(_T("%s"))
не работает
CString str = VartToCStr(properties[VL_INFO]);
CString str2;
str2.Format(_T("%s,"), VartToCStr(properties[VL_INFO]));
Результат:
str: "ES1-SW1-SW3-..."str2: "E"
Зачем?
Добавлено:
(
properties[VL_INFO]
создается:
CString str = _T("ES1-SW1-SW3-...");
properties[VL_INFO] = CStrToVart(str);
где:
#define CStrToVart(str) _variant_t(str)
)
Обходной путь должен использовать CString :: SetString () вместо Format ():
CString str2;
str2.SetString(VartToCStr(properties[VL_INFO]));
Вы можете использовать косвенный способ конвертировать его в формат cstring
cstr= (LPCSTR)_bstr_t(variant);
это может сработать