Тема: DLL & TList
Показать сообщение отдельно
  #2  
Старый 03.12.2006, 20:46
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

Аналогичная проблема.
Подгружаю ДЛЛ, вызываю метод. Получаю record. Сохраняю в другом экземпляре record'а. После выгрузки Длл инфа исчезает. Разве record в Делфи не value тип?

Пробовал так. Распределял память в куче для своего рекорда (при помощи New). Копировал инфу из адреса рекорда, который возвращала Длл в место по новому адресу (при помощи CopyMemory а не простым присваиванием, а то вдруг только ссылки копирнет). Все равно после выгрузки ДЛЛ в новой переменной инфа исчезала.

Детально посмотрел адреса в отладчике. Оказалось хоть адрес нового экземпляра моей структуры и лежал в куче приложения, но адреса полей структуры указывали на адрес, по которому загружена ДЛЛ а не на сегмент данных приложения. Тоесть как и была инфа по адресу, выданному ДЛЛ, так там и осталась, а копировались только ссылки.
Ответить с цитированием