Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ функции выделения памяти

Автор: Адель 4.07.2007 19:58

Подскажите
Какие из функций GetMem, VitruaAlloc, ReallocMem и тд. лучше использовать, если необходимо передвать паметры между программой и программой, программой и ддлкой?

и в чем их отличае?

Автор: volvo 4.07.2007 20:00

А ты потом ответ напишешь spider13, и выдашь за свой? Умница, хорошо придумала dry.gif

Такое проходит один раз, второй раз уже не получается...

Автор: hardcase 5.07.2007 2:26

Не понял комментария volvo, но отвечу.

Цитата(Адель @ 4.07.2007 16:58) *
Подскажите
Какие из функций GetMem, VitruaAlloc, ReallocMem и тд. лучше использовать, если необходимо передвать паметры между программой и программой, программой и ддлкой?

и в чем их отличае?

GetMem обращается к стандартному библиотечному менеджеру памяти, ReallocMem так же в его компетенции - просто перераспределяет (увеличивает/уменьшает регион) память.

VirtualAlloc спрашивает виртуальную память у операционной системы, адрес в виртуальном пространстве нужно указать самому. Вероятно, используется библиотечным менеджером для запроса памяти у операционной системы.

Для передачи данных в длл естественно нужно использовать библиотечные функции GetMem/GetMemory/malloc и прочие, т.к. длл исполняется в адресном пространстве процесса, загрузившего её.

По поводу передачи данных между программами. Предположу, что ты имеешь в виду процессы - здесь нужно использовать или программные каналы (pipes) или общую память (file map), как вариант - сокеты.