我正在尝试从一个来自错误消息的子字符串构建一个字符串:
// 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);
答案 0 :(得分:2)
这有效:
LPCTSTR pszFormat = TEXT("%s %hs");
TCHAR* pszTxt = TEXT("The error is: ");
HRESULT hr = StringCchPrintf(pszDest, cchDest, pszFormat, pszTxt, error_msg);