Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.13;
Скачать: CL | DM;

Вниз

<B>DLL</B> не грузится, если в ней <B>TChart</B>   Найти похожие ветки 

 
vlad2   (2009-10-23 14:27) [40]


> Сергей М. ©   (23.10.09 13:10) [39]
>
> Не верю.


И правильно :).
Когда создал голое приложение без тичарта, длл нормально загрузилась. Тогда стал внимательно смотреть свой проект (он довольно большой и закрученный) и нашёл-таки маленький старый паршивый юнит со ссылкой на тичарт, который в данном приложении, конечно, не нужен. Это была последняя ссылка, после удаления которой всё пошло.

Большое спасибо Сергею М. и Игорю Шевченко, чьи посты подвигли меня на более жёсткий досмотр проекта.


 
Сергей М. ©   (2009-10-23 14:32) [41]


> vlad2   (23.10.09 14:27) [40]


Ну победить-то ты победил, с чем тебя и поздравляем, а вот где была засада и кто в ней сидел - ты, видимо, так и не понял)


 
vlad2   (2009-10-23 14:36) [42]


> Сергей М. ©   (23.10.09 14:32) [41]
>
> где была засада и кто в ней сидел


?


 
Сергей М. ©   (2009-10-23 14:50) [43]


> vlad2   (23.10.09 14:36) [42]


И хост-приложение и DLL при включенных крыжиках использования ран-тайм пакетов пользуют один и тот же экз-р RTL, который ведет списки зарегистрированных классов.

Стартует хост-приложение и при инициализации юнита тичарт-движка (ибо он фигуририрует в uses) регистрирует в RTL соотв.классы, в т.ч. TChartAxisTitle.

Далее хост-приложение грузит либу, в которой в uses также фигурирует тичарт-движок, который для инициализации получает управление, при этом лезет в ту же RTL для регистрации тех же классов, которые там ранее были зарегистрированы хост-приложением, и получает при этом отлуп в виде исключения "A class named ... already exists", ибо в одном и том же списке зарегистрированных классов НЕ может быть двух одноименных классов.


 
vlad2   (2009-10-23 16:16) [44]


> Сергей М. ©   (23.10.09 14:50) [43]

А почему же этого не происходит, если в хост-приложение мы включаем tee?


 
Leonid Troyanovsky ©   (2009-10-23 16:20) [45]


> vlad2   (23.10.09 16:16) [44]

> А почему же этого не происходит, если в хост-приложение
> мы включаем tee?

Видимо, в борьбе под ковром побеждает хост.

--
Regards, LVT.


 
Сергей М. ©   (2009-10-23 16:27) [46]


> vlad2   (23.10.09 16:16) [44]


Хост-приложение при инициализации грузит пакет tee, тот в свою очередь при своей инициализации регистрирует в RTL свои классы.

Теперь ты грузишь свою либу. Система же при загрузке либы видит, что tee уже имеется в АП процесса и не грузит ее, соотв-но повторная иниц-ция tee не происходит.


 
vlad2   (2009-10-23 16:38) [47]


> Сергей М. ©   (23.10.09 16:27) [46]

Большое спасибо, Сергей. Теперь понятно.



Страницы: 1 2 вся ветка

Текущий архив: 2009.12.13;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.024 c
2-1256244709
Drowsy
2009-10-23 00:51
2009.12.13
BDE Administrator.


2-1256104735
Qwerg_ntgl
2009-10-21 09:58
2009.12.13
Загрузка в DbGrid в PickList из текстового файла


2-1256194244
kyn66
2009-10-22 10:50
2009.12.13
Цвет строк в многострочном GridEh


2-1255649628
mm0
2009-10-16 03:33
2009.12.13
Фокус на главную форму


15-1255252664
Kerk
2009-10-11 13:17
2009.12.13
Украсть ящик водки, продать его, а полученные деньги пропить.