Вниз
Скачать: CL | DM;

Проблема с design time packages   Найти похожие ветки 

← →
BFG9k ©   (2005-12-14 15:38) [0]

Или я что-то не понимаю в идеологии, или где-то глюки ...

Если я включаю свой пакет в Runtime Packages, то его приходится загружать после запуска программы. Интерфейсная часть пакета берется из DCP файла.

Для того, чтобы включить пакет к исполняемый файл на этапе компиляции, нужно добавить его Design time packages. При этом добавляем уже скомпилированный BPL файл.

Где при этом находится интерфейсная часть ?

Проблема в том, что я добавляю с свой пакет в Design time packages, но среда не находит его модули. Если при этом его добавить также в runtime packages, все нормально компилируется и работает хотя Я ЕГО ПОСЛЕ ЭТОГО НЕ ЗАГРУЖАЛ С ПОМОЩЬЮ LOADPACKAGE. Значит ли это, что пакет попал в исполняемый файл ?


← →
Игорь Шевченко ©   (2005-12-14 15:44) [1]


> Если я включаю свой пакет в Runtime Packages, то его приходится
> загружать после запуска программы. Интерфейсная часть пакета
> берется из DCP файла.


Его система сама загружает, как любую другую DLL


> Для того, чтобы включить пакет к исполняемый файл на этапе
> компиляции, нужно добавить его Design time packages. При
> этом добавляем уже скомпилированный BPL файл.


В Design time packages включены те пакеты, которые загружает сама среда, Delphi то есть. К твоему приложению они не имеют никакого отношения.


← →
DesWind ©   (2005-12-14 15:48) [2]

Я так понял, что надо прописать путь к пакету в Library path


← →
DesWind ©   (2005-12-14 15:55) [3]

Точнее к *.dcu этого пакета


← →
BFG9k ©   (2005-12-14 16:00) [4]

2 Игорь Шевченко:

При включении пакета в Runtime Packages размер EXE файла не увеличивается. Мне то как раз и нужно, чтобы среда увидела пакет, для того чтобы скомпилировать программу.

2 DesWind:

А разве dcu не находятся внутри bpl ? Где это - Library Path ?


← →
BFG9k ©   (2005-12-14 16:07) [5]

2 Игорь Шевченко:

Если включить в runtime packages, все работает. Мне просто важно понять почему ... вдруг bpl файл загружается после запуска программы.


← →
Игорь Шевченко ©   (2005-12-14 16:15) [6]


> вдруг bpl файл загружается после запуска программы.


Вдруг ничего не бывает. BPL, указанный в run-time packages загружается одновременно с запуском программы, как и любая другая DLL. Указание пакета в списке run-time packages приводит к тому, что функции (классы, методы и т.п.) в юнитах этого пакета вызываются как функции из внешней DLL, вместо того, чтобы включаться в общий EXEшник.


← →
BFG9k ©   (2005-12-14 16:44) [7]


> Указание пакета в списке run-time packages приводит к тому,
>  что функции (классы, методы и т.п.) в юнитах этого пакета
> вызываются как функции из внешней DLL, вместо того, чтобы
> включаться в общий EXEшник.

Мне это не нужно. Мне нужно зашить BPL в EXEшник. О том и толкую ....


← →
Игорь Шевченко ©   (2005-12-14 16:53) [8]


> Мне нужно зашить BPL в EXEшник.


Исключи его из run-time пакетов и укажи путь к dcu юнитов этого пакета.


← →
BFG9k ©   (2005-12-22 17:13) [9]


> Исключи его из run-time пакетов и укажи путь к dcu юнитов
> этого пакета.


Где указать ? В search pas ? А зачем тогда пакет, спрашивается ?:) Dcu же зашиты внутри bpl. Я кажется понял, пакет надо проинсталлировать ...


← →
jack128 ©   (2005-12-22 17:19) [10]

BFG9k ©   (22.12.05 17:13) [9]
А зачем тогда пакет, спрашивается ?:)

А пакет в этом случае и не нужен. А зачем ты пакет сделал??


← →
BFG9k ©   (2005-12-22 17:33) [11]

Объясняю идеологию пакетов. 2 пакета не могут содержать одноименные модули (или один и тот же модуль). Эти модули засовываются в третий пакет, а он используется в секции requires первых двух пакетов.

Этот третий пакет (в моем случае в нем находится базовый класс от которого пораждаются классы, находящиеся в первых двух пакетах) по-любому используется в главной программе, которая загружает первый 2 пакета динамически.

И отсюда вывод. Зачем подгружать этот пакет динамически, когда его-то как раз можно засунуть в ЕХЕшник? Но че-то не получается пока ...


← →
Игорь Шевченко ©   (2005-12-22 17:43) [12]


> И отсюда вывод. Зачем подгружать этот пакет динамически,
>  когда его-то как раз можно засунуть в ЕХЕшник? Но че-то
> не получается пока ...


И не получится. Зато его можно загружать статически, включив в список Build with run-time packages.

Тебя же не удивляет, что каждый пакет требует rtl70.bpl ? Мысль его засунуть в EXEшник тебя не посещает ?



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.027 c
14-1134982122
WondeRu
2005-12-19 11:48
2006.01.15
Аспирант маст дай!


14-1135245152
pavel_guzhanov
2005-12-22 12:52
2006.01.15
Как возвести число а дробную степень?


8-1123065792
BFG9k
2005-08-03 14:43
2006.01.15
Перетаскивание изображения как в ACDsee


14-1134707455
КаПиБаРа
2005-12-16 07:30
2006.01.15
Почему процветает модель разработки "Тяп ляп"?


2-1135600916
dera
2005-12-26 15:41
2006.01.15
Зашел в тупик.




   Наверх