Этот вопрос является продолжением этого question.Доля памяти менеджер между приложениями и пакет
Как я могу добиться того, что мое приложение и мой пакет выполнения используют один и тот же менеджер памяти? Я думал, что это было по умолчанию, но поскольку я получаю странные нарушения доступа и недопустимые исключения указателей, я вставил вызовы на GetMemoryManagerState
непосредственно перед входом в пакет времени выполнения и в пакете времени выполнения, и возвращаемое состояние, похоже, указывает, что пакет и приложение использует отдельных менеджеров памяти.
Перед вызовом метода в пакете времени выполнения имеется 61 выделенных блоков среды, а после вызова (в начале вызываемого метода внутри пакета) есть 0 выделенных блоков среды.
У вас есть объяснение? Что мне нужно сделать, чтобы пакет и приложение совместно использовали диспетчер памяти? Любые более сложные проблемы при использовании FastMM?
EDIT BTW, есть ли лучший способ проверить, используется ли тот же менеджер памяти, что и сравнение состояния диспетчера памяти? TMemoryManager
оказывается записью, поэтому я не могу сравнивать адреса.
Они по умолчанию. Какую версию Delphi вы используете? –
Я использую D2010. – jpfollenius
HOw вы загружаете упаковку? Динамически или нет? Скомпилировано ли приложение с помощью «Использовать пакеты времени выполнения»? – 2010-02-22 12:53:30