Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача поинтеров в длл и обратно [D7, WinXP]


Страницы:   1 2

Кузя ©   (2009-03-03 13:42:00) 

Всем доброго дня!

Имеется у меня такое:
приложение использует дллки загруженные с помощью LoadLibrary

в этих дллках имеютя функции вида
TProcEditData = function(var ptr: pointer;var size: dword): boolean stdcall;

прога передаёт в длл ptr на некоторую память размера сайз .. ну это понятно

длл использует эту дату и возращает обратно уже новый ptr и size


прога освобождает память старого ptr
--
Вопрос:
чую некорректно использовать в проге для выделения памяти GetMem

потомучто


..
GetMem(ptr,size);
<копи нужное в ptr^>
OldPtr := ptr; OldSize := size;
EditProc(ptr,size) // это в длл
FreeMem(OldPtr,OldSize);
..

вот до сюда всё работает нормально
но когда пытаюсь сделать FreeMem(ptr, size) (ptr и size из длл получено) , что-то начинает сбоить. При том ДЛЛ вроде про этот поитер забывает сразу.. всмысле потом не использует нигде

Научите\обьясните))
--
и еще для выгрузки длл загруженной с помощью LoadLibrary достаночно вызова FreeLibrary? а то при попытке перезагрузить дллки тоже чото сбоит. Может еще какойнить фрихэндл нужен?

Спасибо.


Кузя   (2009-03-03 13:56:00) [21]

ну их длл создала

правельнее было написать

GetMem(ptr,size);
<копи нужное в ptr^>
OldPtr := ptr; OldSize := size;
EditProc(ptr,size) // это в длл
FreeMem(OldPtr,OldSize);
<использование того что прислала дллка> //тут все нормально
FreeMem(ptr, size) - а тут сбой

при том ДЛЛ еще не выгружена


Сергей М.   (2009-03-03 13:49:00) [22]


> длл .. возращает обратно уже новый ptr и size


Они откуда, "новые", там взялись ? С луны свалились ?
А ведь именно в этом ключевоймомент !


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо