-
Возможно ли subj? Ибо для него нужно создавать фабрику классов, которой нужет глобальный объект ComServer, описанный в ConServ.pas с директивой {$DENYPACKAGEUNIT}
-
> d_oleg © (13.06.07 16:22)
Видишь ли, объект ComServer создается в ходе инициализации юнита CmnServ.
Пакет принципиально отличается от обычной dll тем, что инициализация пакета (точнее - юнитов в его составе) в ходе его загрузки выполняется явно или неявно вызовом экспортируемой пакетом процедуры Initialize, в то время как при загрузке dll та самая инициализация выполняется автоматически.
Поскольку Windows ничего не знает ни про какие пакеты (для нее что bpl, что dll - безразлично, и та и другая есть просто библиотеки динамической компоновки), процедура Initialize в ходе загрузки модуля вызвана не будет, соответственно фабрика класса создана не будет, а без фабрики, разумеется, не может быть создан ни один объект класса.
-
Сергей М, это все понятно, что "в лоб нельзя".
-
Ну а раз понятно, то почему не отказаться от затеи с пакетом в пользу обычной dll ?
-
Сергей М., а Вы все задачи только "в лоб" решаете?
> почему не отказаться от затеи с пакетом в пользу обычной > dll каким образом из dll можно импортировать тип?
|