![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли обрашаться из DLL к методам объектов приложения ? [D7, XP]
ANB © (2006-01-17 13:59:00)Из основного приложения в процедуру в DLL передаю адрес формы и имя компонента (грида), которое мне нужно. Через TForm.Component и функции из модуля TypInfo достаю адрес дейтасета и вызываю его методы. Все это в цикле. После первых обращений - все хорошо, потом все падает с AV. Попытался перехватить исключение - приложение вообще начало закрываться. Путем логирования определил, что AV происходит именно при обращении к методу (Next). Тоже и при доставании значения поля через AsString.
Если процедуру из DLL прикомпилять к основному приложению - то все работает как часы. Дэйтасет из одака - TOraQuery.
Можно ли вообще делать так (через DLL) или лучше таки компилять все вместе ?
ANB (2006-01-17 16:35:00) [1]
> Desdechado © (17.01.06 16:01) [4]
Это обеспечим. Тут уже говорили об этом на форуме. Это делфисты ко мне приколупались - вынеси процедуру в отдельную библиотеку и все тут.
Desdechado (2006-01-17 16:01:00) [2]для EXE и DLL исходники классов должны быть АБСОЛЮТНО одинаковые, а не только по названию
Игорь Шевченко (2006-01-17 15:17:00) [3]
> Но мне их надо динамически цеплять
LoadPackage
ANB (2006-01-17 14:11:00) [4]
> Игорь Шевченко © (17.01.06 14:08) [1]
Надо попробовать через bpl. Но мне их надо динамически цеплять, я только с DLL научился это делать (чуток). Раньше не надо было. Ща пойду у делфинов гляну, как они делают.
Игорь Шевченко (2006-01-17 14:08:00) [5]
> Можно ли вообще делать так (через DLL)
Вообще - можно, в частностях могут возникнуть проблемы, связанные с разным набором VMT в DLL и в приложении. Оно сильно надо так извращаться ? Может, лучше пакеты (bpl) использовать, в этом случае точно можно.