Аналогичная проблема.
Подгружаю ДЛЛ, вызываю метод. Получаю record. Сохраняю в другом экземпляре record'а. После выгрузки Длл инфа исчезает. Разве record в Делфи не value тип?
Пробовал так. Распределял память в куче для своего рекорда (при помощи New). Копировал инфу из адреса рекорда, который возвращала Длл в место по новому адресу (при помощи CopyMemory а не простым присваиванием, а то вдруг только ссылки копирнет). Все равно после выгрузки ДЛЛ в новой переменной инфа исчезала.
Детально посмотрел адреса в отладчике. Оказалось хоть адрес нового экземпляра моей структуры и лежал в куче приложения, но адреса полей структуры указывали на адрес, по которому загружена ДЛЛ а не на сегмент данных приложения. Тоесть как и была инфа по адресу, выданному ДЛЛ, так там и осталась, а копировались только ссылки.
|