1

_com_object の ErroerMessage() 関数を呼び出して、try、catch でエラー コードを返すコードがあります。

catch(const _com_error& error)
{
   myError = _T("Failed, Reason:")+error.ErrorMessage();
}

エラーを説明する実際のWindows文字列を取得する代わりに、エラーコードが返されます。この場合、0xC00E001E

MSMQ の Windows DLL へのアクセスを許可するために、mqoa.dll を含めました。

ブレークポイントを使用してステップスルーしたところ、返される wCode が常に 0 であることがわかりました。

どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

1

_T("Failed, Reason:")への const ポインタTCHARです。ErrorMessage()は、 への const ポインタも返しますTCHAR。演算子は+、文字列を連結する代わりに、ポインター演算を実行することになります。

myErrorが の場合CString、その+=演算子を使用できます。

myError = _T("Failed, Reason: ");
myError += error.ErrorMessage();

またはそのFormat()メソッド:

myError.Format(_T("Failed, Reason: %s"), error.ErrorMessage());
于 2013-10-22T09:12:54.200 に答える