Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FastMM4, TjvPlugin, BPL и разделение памяти, ShareMem, FastMm4, FastShareMm или так? 
V
    Опции темы
Bose
  Дата 29.10.2006, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Delphi 7.
Создаю BPL плагин с помощью TjvPlugin Wizard из пакета JEDI VCL.

В программе подгружаю с помощью TjvPluginManager. Если в проекте включен FastMM4 а в плагине - нет, то получаю AccessViolation(а то и зависание) в момент вызова ф-ции RegisterPlugin в плагине. Текст ф-ции:
Код

RegisterPlugin: TMyJvPlugin;
begin
  result:=TMyJvPlugin.create(nil)
end; 


В конфигурации FastMm4 включены все флаги отвечающие за разделение памяти. Если подключить FastMM4 и к плагину, и подгрузить из программы несколько копий этого плагина, то при загрузке каждого из них получаю сообщение о том, что "FastMM4" уже загружен и не может быть проинсталлен... (точного сообщения не помню, но если нужно - могу привести текст). И плюс, при закрытии приложения после этого намертво зависают Delphi. 

Проблема одна, а вопроса всё-таки 2(нелогично разносить по 2м темам): 
1) Кто-нибудь сталкивался с подобным?
2) Нужно ли подключать дополнительные менеджеры памяти,  чтобы создавать объекты в BPL и использовать в программе, или механизм работы BPL сам по себе поддерживает разделение?
PM MAIL WWW Skype   Вверх
Bose
Дата 29.10.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 23
Всего: 51



Цитата(Bose @  29.10.2006,  15:05 Найти цитируемый пост)
И плюс, при закрытии приложения после этого намертво зависают Delphi. 

с этим кажется разобрался - судя по всему, это происходило из-за того, что я забывал выгрузить BPL после загрузки. smile 

PM MAIL WWW Skype   Вверх
Sansa
Дата 31.10.2006, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

Репутация: 3
Всего: 6



Я с таким сталкивался. Действительно, если не выгружать плагины, то выходим на Access Violation. Менеждеры памяти необходимо использовать, если в библиотеку передаются строки, а не PChar. 
К сожалению не помню, что передает TjvPlugin при вызове, а посмотреть негде. И ишо. Когда я в плагин пытался встроить форму, то без конструкции в плагине вида:
Код

var
  OldApp: TApplication;
function Initialize(Manager: TComponent; HostApplication: TApplication;
      FileName: string): Boolean; virtual; stdcall;
begin
  OldApp:= Application;
  Application:= HostApplication;
end; 

... те же грабли.
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.