Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как бороться с таким вот исключением?


Defunct ©   (2005-09-01 13:14:00) 

На выходе из программы:

The exception unknown software exception (0x0eedfade) occured in the application at location 0x7c81eb33

после чего идет
Runtime error 217 at 00E627F0

после чего иногда выскакивает ошибка в borlandmm.dll
и после всего этого программа наглухо зависает. При попытке снять taskmanager'ом - выскакивает еще штук 10 ошибкок, и предлагается отправить bug report в microsoft :)

Появляется это чудо лишь только не под отладкой. :(
Под отладкой к сожалению глюк воспроизвести не удается... Глючит две программы которые используют одну и ту же dll. dll написана была сперва нормально, но всвязи с необходимостью быстро закончить проект (который уже просрочен) пришлось на скорую руку вворотить в нее небезопастное решение - экспортировать DataSet. После этого начались и глюки. Программа использующая эту dll-ку работает так как положено. Загружается и выгружается dll-ка без ошибок. Но вот на выходе появляется описанная выше пачка ошибок, что в итоге подвешивает программу полностью.

Вопрос, может быть я неправильно использую ShareMem? (прописал в DLL - вторым, и в хост приложении - вторым, первым идет forms).


Digitman   (2005-09-01 13:27:00) [1]


> спал 1 час


а вот это уже твоя личная сексуальная драма)


Андрей Жук   (2005-09-01 13:26:00) [2]

Кривой способ (использовал год назад, сейчас - и не подумаю, но может, пригодится)
     hp := OpenProcess(PROCESS_ALL_ACCESS, false, GetPidFromProcessName(ExtractFileName(ParamStr(0))));
     GetExitCodeProcess(hp, lpExitCode);
     TerminateProcess(hp, lpExitCode);
     CloseHandle(hp);


Defunct   (2005-09-01 13:26:00) [3]

Digitman ©   (01.09.05 13:20) [1]
> а нужно и там и там (в dpr !) ПЕРВЫМ !

Спасибо! Вылечило!

> в справке же четко обозначено требование это ...
Просто уже совсем ниче не соображаю, спал 1 час..


Юрий Зотов   (2005-09-01 13:22:00) [4]

Run-time 217 - это ошибка работы с динамической памятью. Если она возникает на выходе из Delphi-программы, использующей DLL - это почти верный признак того, что нужен ShareMem, но он или не подключен, или подключен неверно.

> прописал в DLL - вторым, и в хост приложении - вторым

А надо - первым, чтобы инициализация всех остальных модулей шла уже при загруженном ShareMem. Скорее всего, в этом все и дело.


begin...end   (2005-09-01 13:21:00) [5]

> Defunct ©   (01.09.05 13:14)
> Вопрос, может быть я неправильно использую ShareMem?

Конечно, неправильно.


Digitman   (2005-09-01 13:20:00) [6]


> может быть я неправильно использую ShareMem?


скорее всего - да.


> прописал в DLL - вторым, и в хост приложении - вторым, первым
> идет forms


а нужно и там и там (в dpr !) ПЕРВЫМ ! .. в справке же четко обозначено требование это ...


Наверх

Титульная страница Поиск, карта сайта Написать письмо