|
#1
|
||||
|
||||
DLL & TList
Вот уж не думал что придётся задавать вопрос на форуме... вроде и справок много и инет есть.. ну лана.
Проблемка не сложная.. есть длл - в результате вызова в ней какой-то ф-ии возвращается мой тип, являющийся списком... всё вроде бы хорошо - работает.. но стоит мне выгрузить библиотеку, - и я теряю эту переменную.. так вот мне нужно сделать чтобы при выгрузке я мог обращаться к этому списку.. неважно или созданием нового или ещё каким способом.. Нет повести печальнее на свете, чем повесть о заклиневшем Resete. Последний раз редактировалось Ferra, 03.12.2006 в 17:57. |
#2
|
|||
|
|||
Аналогичная проблема.
Подгружаю ДЛЛ, вызываю метод. Получаю record. Сохраняю в другом экземпляре record'а. После выгрузки Длл инфа исчезает. Разве record в Делфи не value тип? Пробовал так. Распределял память в куче для своего рекорда (при помощи New). Копировал инфу из адреса рекорда, который возвращала Длл в место по новому адресу (при помощи CopyMemory а не простым присваиванием, а то вдруг только ссылки копирнет). Все равно после выгрузки ДЛЛ в новой переменной инфа исчезала. Детально посмотрел адреса в отладчике. Оказалось хоть адрес нового экземпляра моей структуры и лежал в куче приложения, но адреса полей структуры указывали на адрес, по которому загружена ДЛЛ а не на сегмент данных приложения. Тоесть как и была инфа по адресу, выданному ДЛЛ, так там и осталась, а копировались только ссылки. Последний раз редактировалось AlexZL, 03.12.2006 в 20:50. |