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

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

AccessViolation при уничтожении интерфейсов


Polymorphic ©   (2003-04-30 16:36:00) 

При уничтожении всяких интерфейсов DirectDraw методом _release появляется до фига EAccessViolation (у меня пять). Мне всего 16, а на интерфейсы у меня вообще аллергия! Дебаггер даже не показал место ошибки! Может кто-нить с этим кошмаром встречался?
ЗЫ. Пробовал не освобождать интерфейсы - ошибок стало две :).


cyborg   (2003-05-01 15:19:00) [1]

Он там говорит о Delphi5, о чём там и сказал, что в шестой и более нужно делать просто nil.


Polymorphic   (2003-05-01 14:10:00) [2]

Спасибо большое.Но тогда я не понял М. Краснова(автор книги "DirectX. Графика в проектах Delphi"). В первых примерах он действительно присваивал интерфейсам nil. Но затем заявил, что интерфейсы классически уничтожаются _release и стал использовать это в своих программах, также вызывавших EAccessViolation при завершении.
А всё-таки интересно, что будет, если не освобождать интерфейсы вообще. Мусор в системной памяти?


NailMan   (2003-04-30 17:33:00) [3]

Уничтожать их надо не _Release, а простым присваиванием ему значения nil, типа:
DDraw := nil;

метод _Release несколько для других целей


Наверх

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