Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.01.2010, 17:16
PG81 PG81 вне форума
Прохожий
 
Регистрация: 15.10.2009
Сообщения: 31
Репутация: 10
По умолчанию Ошибка AV при уничтожении объектов из модулей (dll)

В кратце опишу как устроена программа.
Есть программа с главной формой MDI.К ней подключаются модули (dll), в которых могут быть как объекты так и формы, назовем их ПМОбъект (Объект из программного модуля).

В приложении есть объект ядро, которое загружает модули, создает ПМобъекты, ведет их учет, сообщает ПМобъектам чтобы те себя уничтожили, и если у программного модуя нет ни одного ПМобъекта выгружает модуль. Каждый ПМобъект и ядро имеют интерфейс с одной функцией EXEC(aMessageCode:UINT; aParam:WPARAM; bParam:LPARAM):LPARAM;Через нее и происходит все взаимодействие ПМобъектов и ядра, по средствам команд и параметров.

При создании ПМобъекта ядро создает объект с различными свойствами этого объекта(например имя, тип)и при его создании ядро получает ссылку на интерфейс для взаимодействия.При создании ПМ объекта формы, создается форма и форма из модуля создается командой createparented. При необходимости уничтожить ПМобъект ему посылается команда и он выполняет метод self.free. А объект в ядре с его свойствами уничтожается.Вобщем все как-то работает, но я постоянно нарываюсь на ошибку AV, причем прирду этой ошибки понять не могу.

Все проверял на более простом приложении, там все работало, щас начался геморой, побороть не могу. При необходимости могу выслать исходники, если поможете мне, могу даже указать в авторах программы.Собираемся програму регистрировать в ФИПС-е.Очень буду признателен за помощь.

Последний раз редактировалось PG81, 08.01.2010 в 17:50.
Ответить с цитированием
  #2  
Старый 08.01.2010, 17:36
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Наворочено порядочно, без исходников не разберешься.
В личку пошлю майл
Ответить с цитированием
  #3  
Старый 08.01.2010, 17:39
PG81 PG81 вне форума
Прохожий
 
Регистрация: 15.10.2009
Сообщения: 31
Репутация: 10
По умолчанию

Цитата:
Сообщение от s0Creator
В личку пошлю майл
ЭТО КУДА СМОТРЕТЬ?
Ответить с цитированием
  #4  
Старый 08.01.2010, 17:50
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

заходишь в панель управления -> список сообщений -> входящие
Ответить с цитированием
  #5  
Старый 09.01.2010, 17:18
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

В общем причину нашел.
В модуле uCore в самом конце строчка
Код:
destructor TPmObjData.Destroy;
begin
//...
  fPmObject:=nil;

//...
end;
Ответить с цитированием
  #6  
Старый 09.01.2010, 17:55
PG81 PG81 вне форума
Прохожий
 
Регистрация: 15.10.2009
Сообщения: 31
Репутация: 10
По умолчанию

PHP код:
destructor TPmObjData.Destroy;
begin
//...
  
fPmObject:=nil;
  
inherited Destroy;//а у меня тут ошибка появляется на у третего
                         //экземпляра формы
//...
end
Может чего не удаляю еще.Еще кроме всего прочего мне сказали что сам объект не может выполнять следущий код в своем методе self.fre, т.е. не может сам себя удлаять, т.е. получается мне тогда нужно все переделывать?(((( Но ведь вроде все работает, не знаю как быть.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:15.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025