Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Управление Памятью    >>    freeptr
   
 
 Использование FREEPTR в TP6/7   Павел Григоркин 15.04.1993

Инициализация переменной FreePtr из Turbo Pascal 5.х под Паскалем 6.0 и 7.0. Обычно эта проблема возникат при попытке использования различных "фирменных" модулей, написанных под старый паскаль, например, Turbo (Object) Professional, B-tree и т.п.



2k 
 

Привет All! Михаил Акопов спрашивал: > При использовании Object Professional 1.0 c Borland Pascal 7.0 > столкнулся с такой проблемой: > в OP используется встроенный указатель FreePtr, которого нет > в поздних версиях Паскаля. > > Кстати такая же проблема при использовании Turbo Professional. > > Заранее благодарен, > Михаил Акопов. Беру на себя смелость подвести итоги по общенародному решению следующей проблемы: Как инициализировать переменную FreePtr из Turbo Pascal 5.х под Паскалем 6.0 и 7.0? (Обычно эта проблема возникат при попытке использования различных "фирменных" модулей, написанных под старый паскаль, например, Turbo(Object) Professional, B-tree и т.п.). Если далее кто-нибудь прочитает для себя прописные истины - прошу не ругаться и не плеваться, а просто не читать. а самом деле затронутая проблема вызвала дейстительно бурное обсуждение как в Relcome, так и в Фидо - чесное слово! Ответ, как ни странно, чаще всего находится в докуметации :). Посмотрите файл helpme!.doc (лежит в файле online.zip на диске 'bgi/utilities' TP Professional 6.0. Далее частично приведу письмо Вярвельского Андрея (andrew@alta.msk.su), которому я весьма благодарен за оказанную помощь. Аналога FreePtr в TP6.0 не существует. Дело в том, что в TP6.0 изменился механизм управления распределением памяти в heap-е (Heap manager). Теперь свободные блоки, воэникающие после FreeMem или Dispose, не учитываются в таблице свободных блоков, на "хвост" которой и указывал FreePtr, а организуются в виде односвязного списка, на "голову" которого показывает FreeList, а "хвост" его должен указывать на HeapPtr. Поэтому FreePtr просто перестал быть нужным. Попробовать решить проблему переноса программ из TP5.x в TP 6.0 можно несколькими путями: 1. Особо не задумываясь, сэмулировать FreePtr, установив его в то состояние, которое он имел бы при