hinst » 13.02.2014 14:15:42
я-то знаю почему
Добавлено спустя 40 секунд:
передача экземпляров классов конкретно из LCL не будет так работать
Добавлено спустя 6 минут 10 секунд:
в LCL используются данные, которые глобальные. И при вызове любого невиртуального метода будет обращение к другим глобальным данным
Самый действенный метод это сделать специальный интерфейс к LCL. Причём если задача конкретная, то только к тем функциям и классам, с которыми планируется работать: например, только основные методы TForm, основные методы TPanel, TButton: назначение текста, задание размера, видимости. И вот через этот интерфейс уже всё и делать, тогда исполняемая копия LCL будет только в основной библиотеке, а в динамической библиотеке с плагином будут вызываться методы той же самой исполняющейся копии LCL через этот интерфейс.... Который, как я говорю, не обязан привязывать всё. Достаточно привязать через него только то, что используется, и только те классы, которые используются, если нужны кнопки, то кнопки, если списки то списки, ну вы поняли; и вот тогда это будет работать правильно и без падений
Добавлено спустя 1 минуту 46 секунд:
и вот таким образом достигается, чтобы копия LCL была только в основной программе, а в плагине обращения к ней. Тогда не будут вылетать ошибки, будет меньше размер библиотеки с плагином, и будут меньше расходы ресурсов и во время исполнения, так как второй копии LCL тогда не будет
Добавлено спустя 1 минуту 12 секунд:
а в перспективе можно было бы как-нибудь сделать чтобы этот динамический интерфейс сразу был, но это уже надо думать как лучше организовать