Форум: "Corba";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
ВнизВызов _Release Найти похожие ветки
← →
XProger © (2006-07-21 20:54) [0]Сегодня столкнулся с проблемой.
Приложение использует несколько интерфейсов, которые при выходе сами уничтожаются, причём важен порядок их уничтожения (интерфейсы жёстко связаны)
В 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?
Не хочется натыкаться на подобные подводные камни... :)
← →
isasa © (2006-07-22 10:51) [1]А, гарантированно, ручками, в нужном порядке ?
myIntf:=nil;
← →
XProger © (2006-07-22 13:03) [2]isasa, спасибо! Вечно я себе проблемы создаю... :)
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.048 c