2

我正在尝试从来自错误消息的子字符串构建字符串:

// 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);
4

1 回答 1

2

这有效:

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

HRESULT hr = StringCchPrintf(pszDest, cchDest, pszFormat, pszTxt, error_msg);
于 2012-10-30T13:46:25.667 回答