Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
А можно ли сделать так, чтобы основное приложение всё-таки грузило пакеты, даже если скомпилировано без ?
Потому что не проходит только нахождение классов из пакета, а сам пакет загружается и функции из него тоже находятся.
Может сделать промежуточный безклассовый пакет, который сам будет загружать основной (в моём случае - пока - редактор)
6 сен 19, 18:52    [21965613]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Vlad F
Странно, что ты счёл необходимым таки хлопнуть этими граблями по лбу.


"Пусть путь просветления иногда освещают удары по лбу орехов неожиданности" - лама Ринпоче
6 сен 19, 19:01    [21965625]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Vlad F
Member

Откуда:
Сообщений: 871
Victor Cookin,

Да-да, а в другой известной поговорке очень точно квалифицируется,
кто учится на чужих ошибках, а кто на своих.
6 сен 19, 19:09    [21965640]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
x1ca4064
Member

Откуда:
Сообщений: 1003
Victor Cookin,

А как Вы планируете использовать bpl, если трансляторы разные?
6 сен 19, 19:19    [21965659]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
alekcvp
Member

Откуда:
Сообщений: 1485
Victor Cookin
Потому что не проходит только нахождение классов из пакета, а сам пакет загружается и функции из него тоже находятся.

http://fire-monkey.ru/topic/1729-импорт-класса-из-bpl-loadpackage/
6 сен 19, 19:21    [21965664]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
rgreat
Member

Откуда:
Сообщений: 5212
x1ca4064
Victor Cookin,

А как Вы планируете использовать bpl, если трансляторы разные?
Несколько копий bpl в разных каталогах. Ы?
6 сен 19, 19:24    [21965675]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
rgreat
Member

Откуда:
Сообщений: 5212
А еще лучше все перекомпилить втихую без runtime packages. ;)
6 сен 19, 19:25    [21965676]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Я правильно понимаю, что bpl всегда компилируются как бы с опцией "Build with runtime packages"
и эти "runtime packages" перечислены в списке Required?
6 сен 19, 19:41    [21965686]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
alekcvp,

Спасибо за ссылку. Из того, что написал Бровин, я понял, что основное приложение, скомпилированное с исползованием runtime пакетов, первым делом загрузит пакеты rtlxxx.bpl и vclxxx.bpl. И "слинкует" их динамически. Когда оно подгрузит мой bpl, то и мой сможет обратиться к слинкованным объектам.

Но что мешает приложению без runtime пакетов поделиться с моим пакетом той-же самой информацией - вся разница лишь что приложение их слинковало в момент создания.
7 сен 19, 00:34    [21965805]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
alekcvp
Member

Откуда:
Сообщений: 1485
Victor Cookin
Но что мешает приложению без runtime пакетов поделиться с моим пакетом той-же самой информацией - вся разница лишь что приложение их слинковало в момент создания.

То, что в памяти будут две копии rtl - одна, вкомпиленная в ваше приложение, вторая - из загруженного пакетом rtl*.bpl. И они между собой никак не пересекаются. Это та же проблема, что и с менеджером памяти в приложении и в dll.
7 сен 19, 11:33    [21965877]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
alekcvp
Member

Откуда:
Сообщений: 1485
Картинка с другого сайта.
7 сен 19, 11:44    [21965885]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Victor Cookin,
Можно указывать пакеты, с которыми нужна линковка. Можно сделать свой пакет с rtl и vcl и выбрать те модули, которые нужны. И дальше линковать приложения и dll с этим пакетом.
7 сен 19, 12:31    [21965909]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
alekcvp,

Ну с памятью проблему как-то решили, так и с адресами регистрации можно было бы.
9 сен 19, 22:54    [21967338]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
ziv-2014,

Но тогда всё равно же основное приложение надо будет "Link with Runtime Packages"
9 сен 19, 22:55    [21967340]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
Victor Cookin
ziv-2014,

Но тогда всё равно же основное приложение надо будет "Link with Runtime Packages"

Да придется, удобно в общем.
10 сен 19, 09:50    [21967475]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
[quot ziv-2014]
Victor Cookin
Да придется, удобно в общем.


очань удобно и очень правильно с точки зрения архитектуры. С точки же зрения начальства - лишняя морока - распространять соответствующие bpl и перекомпилировать свои же пакеты с каждым переходом на новую версию дельфей
10 сен 19, 16:54    [21967931]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 1996
>Victor Cookin, 15 авг 19, 19:17 [21950452]
>Одно приложение Т! - на Дельфи 10.2. В него надо вставить моё приложение Е!... Из Т! в Е! передаётся параметром 1 номер ID, и Е! секунд 10 его обрабатывает…
<Я не работаю с Дельфи (C#), но приходится постоянно вызывать другое приложение из моего. Делаю так (к примеру):
//-- Формируем параметры вызова Word 
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "" + "WINWORD.EXE" + "";
startInfo.Arguments = фд_док;
startInfo.WindowStyle = ProcessWindowStyle.Normal;
//-- Запускаем Word
using (Process word = Process.Start(startInfo)) { word.WaitForExit(); }
10 сен 19, 20:45    [21968113]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
ziv-2014
Member

Откуда:
Сообщений: 401
[quot Victor Cookin]
ziv-2014
пропущено...


очань удобно и очень правильно с точки зрения архитектуры. С точки же зрения начальства - лишняя морока - распространять соответствующие bpl и перекомпилировать свои же пакеты с каждым переходом на новую версию дельфей

А в чем морока? Делаем setup и устанавливаем bpl в нужную папку. Даже не всегда нужно перекомпилировать пакеты, если в rtl нет особых изменений. К слову можно сделать автоматически перекомпиляцию пакетов достаточно добавить в зависимые проекты и пакет каждый раз будет комплироваться перед компиляцией основного приложения.
11 сен 19, 10:24    [21968319]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
ziv-2014
А в чем морока? Делаем setup и устанавливаем bpl в нужную папку


Сотни пользователей. Не хочет начальство сетапов никаких.
11 сен 19, 17:41    [21968737]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
rgreat
Member

Откуда:
Сообщений: 5212
Victor Cookin,

Переводи все на веб.
11 сен 19, 18:11    [21968801]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Василий 2
Member

Откуда:
Сообщений: 700
Уж давно были посоветованы стандартный путь через СОМ и хакерский путь через встраивание окна. ТС уже неделю безрезультатно мусолит тему bpl.
11 сен 19, 18:41    [21968817]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 3325
не созрел еще. пусть помучается пока.
12 сен 19, 16:03    [21969615]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Отвечаю:

1) Тема закрыта, так как заказчик против BPL. BPL делается с полпинка, а на COM и DLL нет времени.
Тем не менее удивлён, что при создании BPL нельзя указать - не грузи Required сам, а полез к основному за ними. Ну и чтоб основное такие запросы понимало. И только если в основном требуемого моему BPLя нет, тогда только чтобы мой грузил это.
12 сен 19, 18:32    [21969740]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 711
Василий 2,

хакерский путь он и черезBPL был бы точно таким же - встраивание в имеющуюся TabSheet.
Design time я бы уж точно не делал.
12 сен 19, 18:33    [21969741]     Ответить | Цитировать Сообщить модератору
 Re: Интегрировать одно приложение в другое  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48132

Victor Cookin
удивлён, что при создании BPL нельзя указать - не грузи Required сам, а полез к основному
за ними

Как ты себе представляешь "сказать загрузчику винды не грузить статически слинкованные
DLL-ки"?..

Posted via ActualForum NNTP Server 1.5

12 сен 19, 18:49    [21969761]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Delphi Ответить