У меня есть некоторый код, который вызывает функцию ErroerMessage () _com_object, чтобы вернуть код ошибки при попытке поймать.
catch(const _com_error& error)
{
myError = _T("Failed, Reason:")+error.ErrorMessage();
}
Вместо того, чтобы получить строку с объяснением ошибки, я получаю код ошибки. В этом случае 0xC00E001E
Я включил mqoa.dll, чтобы разрешить доступ к Windows DLL для MSMQ
Я использовал точки останова, прошел и обнаружил, что возвращаемый wCode всегда равен 0.
Любая помощь будет оценена.
Спасибо
_T("Failed, Reason:")
константный указатель на TCHAR
, Сообщение об ошибке() также возвращает константный указатель на TCHAR
, +
оператор заканчивает тем, что выполняет арифметику указателя вместо конкатенации строк.
Если myError
это CString
Вы можете использовать его +знак равно оператор:
myError = _T("Failed, Reason: ");
myError += error.ErrorMessage();
Или его Формат() метод:
myError.Format(_T("Failed, Reason: %s"), error.ErrorMessage());
Других решений пока нет …