![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу разобраться с выгрузкой Dll
Starkom © (2002-06-04 08:29:00)Хоть убей, не могу понять причину, по которой прога валится при FreeLibrary. Перед этим все нормально - происходит LoadLibrary, оттуда вызывается функция через GetProcAddress. А потом все падает при выгрузке.
Starkom (2002-06-05 21:45:00) [1]все оказалось намного проще - приложение компилялось без дурацкой галочки build with run-time packages, а DLL с ней. :)
Игорь Шевченко (2002-06-04 13:30:00) [2]А чей Application используется в качестве Owner"а компонент ?
Application из DLL или Application из EXE ?
oomneeq (2002-06-04 12:54:00) [3]>Starkom (04.06.02 11:13) ...
>... да при создании компонентов в качестве овнера суется Application
А чей это Application? DLLcкий или главноприложенческий?
Cтоит проверить, не уничтожаешь ли ты к примеру явно такие компоненты в неподходящий момент.
Неподходящим моментом может быть когда Application находится в состоянии csDestroying - он тогда полуживой.
А эта полуживость может быть чревата например тем, что такой Application Exception"ы нормально уже не ловит.
Короче копай в ту сторону, раз уж не приводишь исходник.
Starkom (2002-06-04 12:11:00) [4]хмм, finalization секция только одна и в ней ничего страшного нет. в стандартных модулей слишком много.
Игорь Шевченко (2002-06-04 11:36:00) [5]Если со стеком все нормально, то можно посмотреть, что происходит в finalization секциях unit"ов, используемых в DLL. Как своих, так и стандартных.
А вообще, без кода беременность на расстоянии диагностировать крайне затруднительно :-)
Starkom (2002-06-04 11:27:00) [6]Нет, со стеком все нормально.
Игорь Шевченко (2002-06-04 11:15:00) [7]ESP - это указатель стека. Регистр такой. View/CPU Window до вызова функции из DLL и после
Starkom (2002-06-04 11:13:00) [8]2 oomneeq: нет, вроде. В некоторых местах вызывается Application.ProcessMessages, да при создании компонентов в качестве овнера суется Application
Starkom (2002-06-04 11:07:00) [9]2 Григорий: хмм, SysUtils используется почти везде и без него будет очень тяжко. А с ним бывают проблемы?
oomneeq (2002-06-04 11:03:00) [10]>сама ошибка - raised too many consecutive exceptions: access violation at 0x00: read of address 0x00
Application переприсваиваешь?
Григорий Ситнин (2002-06-04 10:58:00) [11]2 Starkom: А в ваших DLL, случайно, не используется модуль SysUtils? Попробуйте его выключить из uses. Возможно, проблема исчезнет.
Starkom (2002-06-04 10:54:00) [12]2 Игорь: А что в этом, ESP хранится?
Starkom (2002-06-04 10:51:00) [13]сама ошибка - raised too many consecutive exceptions: access violation at 0x00: read of address 0x00
Игорь Шевченко (2002-06-04 10:47:00) [14]А в отладчике посмотреть ESP до вызова функции из DLL и после ?
Starkom (2002-06-04 10:39:00) [15]да, ShareMem и там, и там.
Starkom (2002-06-04 10:37:00) [16]хмм, а что такое ProcessDetach, в хелпах такого нет.
Игорь Шевченко (2002-06-04 10:36:00) [17]ShareMem используется в DLL и в EXE ?
MBo (2002-06-04 10:30:00) [18]явно - не надо, лишь бы совпадало соглашение
Hate that never dies (2002-06-04 10:30:00) [19]SORRY/
Конечно не в самом begin...end, а в ProccessDettach
Starkom (2002-06-04 10:28:00) [20]хмм, и как явно очищать стек?