![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов _Release [Delphi, Windows]
XProger © (2006-07-21 20:54:00)Сегодня столкнулся с проблемой.
Приложение использует несколько интерфейсов, которые при выходе сами уничтожаются, причём важен порядок их уничтожения (интерфейсы жёстко связаны)
В Delphi 7 уничтожение происходит в порядке объявления переменных начиная с последнего, в BDS начиная с первого.
В итоге проблема была решена так:
var
{$IF RTLVersion > 15.0}
snd : ISound;
inp : IInput;
vfp : IShader;
tex : ITexture;
ogl : IOpenGL;
wnd : IWindow;
eX : IEngine;
vec : IVector;
log : ILog;
{$ELSE}
log : ILog;
vec : IVector;
eX : IEngine;
wnd : IWindow;
ogl : IOpenGL;
tex : ITexture;
vfp : IShader;
inp : IInput;
snd : ISound;
{$IFEND}
Возможно код будет некорректен для других версий Delphi (нет возможности протестировать)
Существуют ли другие решения? Кто-нибудь сталкивался с подобными проблемами в BDS 2006?
Не хочется натыкаться на подобные подводные камни... :)
XProger (2006-07-22 13:03:00) [1]isasa, спасибо! Вечно я себе проблемы создаю... :)
isasa (2006-07-22 10:51:00) [2]А, гарантированно, ручками, в нужном порядке ?
myIntf:=nil;