Ваш спецификатор формата использует прописные буквы S
, которые сообщают вариантам Unicode функций ...printf()
(например, те, которые используются внутри WideString:::sprintf()
) ожидать char*
вместо wchar_t*
(и Ansi...printf()
функций, ожидающих wchar_t*
вместо char*
).Вот почему s.sprintf(L"%-11S","blablabla")
работает - вы передаете ему char*
.
Для того, что вы пытаетесь, вам нужно вместо этого использовать строчную s
.Вам также необходимо использовать метод WideString::c_bstr()
при передаче значения WideString
в функцию ...printf()
, например:
s.sprintf(L"%-11s", DM->tDepPlnFltNo->AsWideString.c_bstr());