alex4
Зарегистрирован: 02.07.2002 Сообщения: 5
|
Добавлено: Пт Июл 05 2002 00:33 Заголовок сообщения: Как в COM-сервер воткнуть свою обработку ошибок ? |
|
|
Делаю COM-сервер как обычное приложение – форма Form1 + Automation Object. Попытка перехватить исключение на уровне приложения Application->OnException=MyException получается, когда сервер работает как обычное приложение. При возникновении ошибки сервера обработка идет встроенная. Причем это происходит до заготовки в файле приложения. Я пробовал вставлять код, он не срабатывал. catch (Exception &exception) { // мой код Application->ShowException(&exception); } Как я понимаю, перехват должен быть где-то в коде реализации самого сервера MyComClassImpl.cpp. А как это сделать? В примере autosrv.cpp такого ничего нет. Вернее есть, но задачка решается на уровне каждого конкретного метода. Т.е. в каждый метод вставляется свой обработчик try { Form1->Caption=Value ; } catch(Exception &e) { return Error(e.Message.c_str(), IID_IMyComClass); } Может, можно сделать один обработчик на весь сервер? Ведь какой-то обработчик все-таки срабатывает. Или это системная обработка? COM-сервер. Создание события Есть ли простая возможность (вроде мастера) быстро слепить свое или типовое событие, вроде того, как это делает мастер ActiveX? COM-сервер. Возможность изменения параметра В COM-сервер по ссылке из FoxPro передается простой параметр - строка. Там я пытаюсь поменять его (AnsiString) *Param2="NewString", но не получается – какие-то проблемы с памятью. С типом int то же самое. Это невозможно или я что-то сделал не так? |
|