![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 несколько для других целей