Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизПроблема с 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 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c