Привет 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, установив его в то
состояние, которое он имел бы при
|