我有一些代码调用_com_object的ErroerMessage()函数来返回try,catch中的错误代码。
catch(const _com_error& error)
{
myError = _T("Failed, Reason:")+error.ErrorMessage();
}
而不是让实际的Windows字符串解释错误我得到错误代码返回。在这种情况下为0xC00E001E
我已经包含mqoa.dll以允许访问MSMQ的Windows dll
我使用了断点并逐步执行,发现返回的wCode始终为0.
任何帮助都将不胜感激。
由于
答案 0 :(得分:1)
_T("Failed, Reason:")
是指向TCHAR
的const指针。 ErrorMessage()还返回一个指向TCHAR
的const指针。 +
运算符最终执行指针运算而不是连接字符串。
如果myError
是CString
,您可以使用其+=运算符:
myError = _T("Failed, Reason: ");
myError += error.ErrorMessage();
或其Format()方法:
myError.Format(_T("Failed, Reason: %s"), error.ErrorMessage());