Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Вниз

<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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.007 c
2-1256214650
Кирей
2009-10-22 16:30
2009.12.13
Кодовая страница в ADOConnection


1-1228486156
istok2
2008-12-05 17:09
2009.12.13
AV в обработчике сообщений...


2-1256289255
JohnLemon
2009-10-23 13:14
2009.12.13
Изменение стандартной иконки exe файла...


15-1255037610
Германн
2009-10-09 01:33
2009.12.13
RJ45 и как профессионалы умудряются?


15-1255088359
Игорь Шевченко
2009-10-09 15:39
2009.12.13
Сломали луну :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский