использование StringCchPrintf для построения строки из подстроки

Я пытаюсь построить строку из подстроки, которая приходит из сообщения об ошибке:

// the error message
const char* error_msg = e.what();

size_t const cchDest = 100;
TCHAR pszDest[cchDest];

LPCTSTR pszFormat = TEXT("%s %s");
TCHAR* pszTxt = TEXT("The error is: ");

HRESULT hr = StringCchPrintf(pszDest, cchDest, pszFormat, pszTxt, error_msg );

Я надеялся, что второй %s будет заменено значением error_msg, однако вывод:

The error is: ☐☐a

Как мне изменить вышеприведенный код, чтобы подстрока отображалась?

EDIT1
Я также попробовал следующее, но все, что я получаю, это коробка снова.

TCHAR* pszTxt = TEXT("The error is: %c", error_msg );
HRESULT hr = StringCchPrintf(pszDest, cchDest, pszTxt);

1

Решение

Это работает:

LPCTSTR pszFormat = TEXT("%s %hs");
TCHAR* pszTxt = TEXT("The error is: ");

HRESULT hr = StringCchPrintf(pszDest, cchDest, pszFormat, pszTxt, error_msg);
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]