![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Использую свою DLL.
Загрузил, проинициализировал, из DLL получаю интерфейсный объект, провожу с ним работу, всё ок Удаляю объект (никаких ошибок, деструктор вызывается). После этого пытаюсь выгрузить Dll на этом падает.
с такой ошибкой --------------------------- Debugger Fault Notification --------------------------- Project Sample.exe raised too many consecutive exceptions: 'access violation at 0x00000000: read of address 0x00000000'. Process Stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- В библиотеке использую ShareMem. PS если убрать FreeLibrary, AV не появляется |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Конечно нигде больше не идёт
более того
PS Такое ощущение что сама система выгружает без ошибок. Т.к. без FreeLibrary, судя по ProcessExplorer утечки памяти не происходит PPS Действительно осводождает, но всё равно некрасиво убирать FreeLibrary Это сообщение отредактировал(а) SergSW - 30.7.2009, 09:44 |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Код целиком можно?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Полностью привести код к сожалению немогу
Вот набросал тестовый примерчик на нём тоже самое получается
PS в тестовой удалось решить проблему убрав модуль ShareMem, почему он вызывает ошибку понять не могу. В рабочем варианте убрать не могу, при работе с объектами начинает валиться Это сообщение отредактировал(а) SergSW - 30.7.2009, 10:11 |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
имхо не стоит в DllMain пихать CoInitialize/Uninitialize....
-------------------- There are always someone smarter than you... |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
и без них валится
Это сообщение отредактировал(а) SergSW - 30.7.2009, 11:51 |
|||
|
||||
| CodeMonkey |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
ShareMem присутствует первым модулем в dpr-файле? DllMain и жизнь до родов:
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
У меня не воспроизводится.
Проблемы начинаются только если неправильно подключать ShareMem. Если правильно или без него - всё работает. Какая версия Delphi? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Попробовал вместо ShareMem использовать FastMM, теперь через раз падает... забавно
Поправлюсь! Падает теперь не на FreeLibrary а при выходе из программы, при условии что из библиотеки был получен хотябы один интерфейс. Поробую покопать мож где дважды уничтожить пытается Это сообщение отредактировал(а) SergSW - 31.7.2009, 11:12 |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Выложи лучше аттачем тестовый проект, на котором ошибка воспроизводится. Может что прояснится
-------------------- There are always someone smarter than you... |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Собственно полный код и так выше приводил
ЗЫ В тестовом примере с FastMM не возникает а с ShareMem падает Присоединённый файл ( Кол-во скачиваний: 13 )
Test.rar 215,51 Kb |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Это подключать не первым или только в одном проекте. Вы уж по ссылочкам-то не ленитесь гулять. Я их не просто так ставлю. Ну и зачем вы врёте? Вот ваш uses из Test.rar/Project1.dpr:
В каком месте здесь ShareMem? У вас в exe-проекте ShareMem вообще не подключен. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
CodeMonkey, +1. безобразие какое-то и морочанье головы окружающих!
-------------------- There are always someone smarter than you... |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
P.S. Посещение каждой предоставленной ссылочки в первый раз даёт +100 exp и 5% crit. hit (читай: озарение идеей)
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| atomAltera |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.8.2009 Где: localHost Репутация: нет Всего: нет |
Подключил shareMem в exe-шнике. Всё стало ОК. Прикол в том, что без Debuger-а нормально работало тоже (ошибку не выдавало)
У меня Delphi 2009 Присоединённый файл ( Кол-во скачиваний: 6 )
Test.rar 262,48 Kb |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
atomAltera, а зачем столько мусора выкладывать? да и по прежнему нет там в проекте подключенного шармем.
-------------------- There are always someone smarter than you... |
|||
|
||||
| atomAltera |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.8.2009 Где: localHost Репутация: нет Всего: нет |
Извиняюсь Ещё раз извините. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
не использовать ShareMem. значит не туда прописывал. просто он должен использоваться и в приложении и в библиотеке, либо ни там и ни там. -------------------- There are always someone smarter than you... |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Использовать правило: кто память выделил - тот её и освобождает. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 5 Всего: 17 |
О-о-о. Не вы первый сталкиваетесь с такой проблемой. По всей видимости проблемы с самим FastMM4. Вернул SareMem, все стало нормально. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Значит не соблюдали правило по выделению и освобождению памяти. Ищите внимательнее, где чего забыли. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |