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 に答える