Этот вопрос является продолжением этого вопроса.
Как я могу добиться, чтобы мое приложение и мой пакет времени выполнения использовали один и тот же диспетчер памяти? Я думал, что это так по умолчанию, но, поскольку я получаю странные нарушения доступа и недопустимые исключения указателя, я вставил вызов GetMemoryManagerState
непосредственно перед входом в пакет времени выполнения и в пакет времени выполнения, и возвращенное состояние, кажется, указывает на то, что пакет и приложение используют отдельные диспетчеры памяти.
Перед вызовом метода в пакете времени выполнения имеется 61 выделенный блок среды, а после вызова (в начале вызываемого метода внутри пакета) - 0 выделенных блоков среды.
У вас есть объяснение этому? Что мне нужно сделать, чтобы пакет и приложение делили диспетчер памяти? Есть ли более сложные проблемы при использовании FastMM?
РЕДАКТИРОВАТЬ Кстати, есть ли лучший способ проверить, используется ли тот же диспетчер памяти, чем сравнение состояния диспетчера памяти? TMemoryManager
оказывается записью, поэтому я не могу сравнить адреса.