Дорогие товарищи программисты, поделитесь, пожалуйста, опытом и советом по поводу ситуации.
Дано: Чужой COM объект, с которым надо дружить. Написан на Delphi. Клиент - приложение на MSVC 8.0. В клиенте вызываю метод ком-объекта, он молча отрабатывает, возвращая E_UNEXPECTED. При пошаговом выполнении в Output Window при выполнении метода появляется ругательство:
First-chance exception at 0x039d727c in AdmTool.exe: 0xC0000005: Access violation reading location 0x00000050. (AdmTool.exe - это клиентское приложение). То есть где-то внутри себя он обращается (я так понял) по непроинициализированному адресу, и давит исключение в своём трукаче. В результате я не могу поймать это исключение:
try
{
hr=pItem->get_Parent(&pParent); // В этом методе у ком объекта ошибка
}
catch (CException* e)
{
if(e){
char pBuf[512];
e->GetErrorMessage(pBuf, 512);
MessageBoxEx(NULL, pBuf, "pItem->get_Parent", MB_OK|MB_ICONERROR, 0x419);
}
}
при пошаговом выполнении курсор просто перепрыгивает через блок catch, не заходя в него, то есть исключение подавляется в самом сервере. Однако, студия его видит, раз выводит ругательство. Может быть я что-то неправильно делаю?
Вопрос мой заключается в следующем:
Можно ли каким-нибудь образом всё-таки получить эту строку ругательства, чтобы показать юзеру?