12.5. Некоторые вопросы Windows

Вверх  Предыдущий  Следующий

По умолчанию Free Pascal (на самом деле компоновщик, используемый Free Pascal ) создаёт библиотеки, которые не являются перемещаемыми. Это значит, что они должны загружаться по фиксированному адресу памяти: этот адрес называется ImageBase. Если в программу загружаются две библиотеки, сгенерированные с помощью Free Pascal, то будет конфликт, потому что первая библиотека уже заняла место в памяти, куда должна загружаться вторая библиотека.

В Free Pascal есть два переключателя, которые управляют генерацией общедоступных библиотек для WINDOWS:

-WR – генерирует перемещаемую библиотеку. Эта библиотека может быть перемещена в другое место в памяти, если адрес ImageBase уже используется.

-WB – указывает адрес ImageBase для создаваемой библиотеки. Стандартный адрес ImageBase, используемый Free Pascal – это 0x10000000. Этот переключатель позволяет изменить его путём указания другого адреса, например -WB11000000.

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