Солкнулся со следующей проблемой, сам понимаю, что туплю, но в чем грабли не пойму.
Есть внутренний сервер автоматизации писанный на Дельфи, соответственно это dll.
В нем есть несколько СОМ-объектов.
Я добавляю еще один объект который использует некоторые методы других объектов.
Соответственно, перегрузив AfterConstruction получаю в нем указатели на нужные мне интерфейсы требуемых объектов с помощью соответствующий фабрик:
V>Солкнулся со следующей проблемой, сам понимаю, что туплю, но в чем грабли не пойму.
V>Соответственно, перегрузив AfterConstruction получаю в нем указатели на нужные мне интерфейсы требуемых объектов с помощью соответствующий фабрик:
V>Все прекрасно, все работает, если бы не одно НО: я зарабатываю недопустимую операцию при завершении приложения
Ты точно освобождаешь все? Похоже у тебя остались живые ссылки на ком объекты
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Но никакого облегчения это не принесло.
Может быть это связано с тем, что я из самого же сервера обращаюсь к объектам этого же сервера?
Когда я создаю объект в приложении, то загружается dll с сервером, а что происходит, когда я создаю объект этой же dll из другого объекта этой же dll?
И правильно — сам объект TObj4 не разрушается вследствие его удержания. Или у тебя точные подозрения именно об этих 3х объектах — Obj1, Obj2 и Obj3? А если не создавать эти объекты и присвоить им nil в AfterConstruction?
V>Когда я создаю объект в приложении, то загружается dll с сервером, а что происходит, когда я создаю объект этой же dll из другого объекта этой же dll?
Ничего не происходит в плане загрузки dll и т.п. Просто создается объект в твоей загруженной DLL.