Сегодня столкнулся с проблемой.
Приложение использует несколько интерфейсов, которые при выходе сами уничтожаются, причём важен порядок их уничтожения (интерфейсы жёстко связаны)
В Delphi 7 уничтожение происходит в порядке объявления переменных начиная с последнего, в BDS начиная с первого.
В итоге проблема была решена так:
var
snd : ISound;
inp : IInput;
vfp : IShader;
tex : ITexture;
ogl : IOpenGL;
wnd : IWindow;
eX : IEngine;
vec : IVector;
log : ILog;
log : ILog;
vec : IVector;
eX : IEngine;
wnd : IWindow;
ogl : IOpenGL;
tex : ITexture;
vfp : IShader;
inp : IInput;
snd : ISound;
Возможно код будет некорректен для других версий Delphi (нет возможности протестировать)
Существуют ли другие решения? Кто-нибудь сталкивался с подобными проблемами в BDS 2006?
Не хочется натыкаться на подобные подводные камни... :)