Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Packages   Найти похожие ветки 

 
Fiend   (2002-06-05 16:10) [0]

У меня проект использует мною же написанные библиотеки. проект скомпилирован без использования runtime пакетов Delphi. Т.е. Сам экзешник не просит на другой машине никаких там библиотек Delphi. А вот библиотеки хочется скомпилить так, что бы они использовали эти самые runtime пакеты. Ведь проект загружаясь в память уже несет их в себе. Как сделать так чтобы библиотека загружаемая моим проктом не просила наличия этих (Vcl50.bpl, VclAdo50.bpl и т.д.) пакетов, а использовала то что загружено вызывающим процессом?


 
Игорь Шевченко ©   (2002-06-05 16:25) [1]

Если exe-файл скомпилирован без пакетов, то откуда библиотеки узнают, что им загружено ? :-)


 
Fiend   (2002-06-05 16:36) [2]

Имеется ввиду, что в exe как раз включены пакеты, т.е. для работы самого exe не требуются дополнительные библиотеки(Vcl50.bpl и т.д.), а вот мои библиотеки хочу откомпилить с использованием runtime packages т.е. моим нужны эти Bpl. Хочу типа передать из exe хэндл на загруженные проектом экземпляры пакетов


 
Игорь Шевченко ©   (2002-06-05 16:42) [3]

Fiend (05.06.02 16:36)

Проект не загружает экземпляры пакетов, если он скомпилирован без их использования. Никаких хэндлов, следовательно, нету


 
Fiend   (2002-06-05 16:51) [4]

Ну ты меня никак не поймёшь!!!!!!!!!!!!!!!!!!!
Вот войди в меню делфа Project->Options открой закладку Packages и внизу увидишь "Build with runtime packages", обычно этот флажок не установлен и приложения делфи компилируются без использования этих runtime packages. Т.е. все функции из этих пакетов используемые твоим проектом затасовываются в exe. Моя библиотека (которую динамически грузит exe) использует те же вещи что используются и в exe (работают с ADO). Так вот я хочу скомпилить библиотеку с установленным флажком(см. выше), т.е. для работы библиотеке нужны будут runtime packages. НО...
У меня уже есть загруженный exe и в нём есть все необходимые моей библиотеке функции для работы с адо и прочее. Можно ей(библиотеке) как то сказать, мол подруга, не загружай Vcl50.bpl и VclAdo50.bpl, а юзай то что уже скомпилено в вызывающем тебя exe.


 
Игорь Шевченко ©   (2002-06-05 16:53) [5]

Советую изучить матчасть. То что вы говорите - полный бред


 
Fiend   (2002-06-05 16:57) [6]

Да причём здесь матчасть????


 
Игорь Шевченко ©   (2002-06-05 17:03) [7]

После изучения матчасти такие фразы, как

не загружай Vcl50.bpl и VclAdo50.bpl, а юзай то что уже скомпилено в вызывающем тебя exe

обычно исчезают. Либо все работает с пакетами (и exe и dll), либо все содержит необходимый код в себе (и exe и dll), причем, повторяющийся


 
Fiend   (2002-06-05 17:12) [8]

Извини дружище, но ты меня просто вывел из себя своей демагогией. Мог бы сразу сказать, что это нереально,а не поучать меня про матчасть и т.д.


 
EternalWonderer   (2002-06-05 17:16) [9]

Присоединяюсь к вопросу. Действительно, когда проект компилится вместе с кодом библиотеки, весь программный код (функции, процедуры и используемые ими ресурсы) включается в exe. Если отдельно - они включены в bpl, которая используется как внешняя dll (экспортирующая функции), а обращения к её функциям где - то в "урезанном" проекте прописываются как external "*.bpl".

Видимо, предлагаемый вариант невозможен по причине того, что скомпилированный с библиотеками *.exe не экспортирует указанные функции, а в *.bpl они прописаны как export. А может, я ошибаюсь? Реализация такого варианта существенно "облегчила" бы проекты!


 
Игорь Шевченко ©   (2002-06-05 17:26) [10]

EternalWonderer (05.06.02 17:16)

Кто-то мешает попробовать?
Написать exe с экспортированной функцией, написать dll, которая эту функцию использует, посмотреть, что из этого получится.


 
EternalWonderer   (2002-06-05 17:38) [11]

Игорь Шевченко © (05.06.02 17:26)
Это Вы к чему? То, что Вы предложили, у меня в проектах уже реализовано и работает много лет. Другое дело, что *.exe, видимо, не экспортирует те функции и процедуры, которые экспортируются *.bpl - вот это действительно стоит проверить (а вдруг? :).


 
Anatoly Podgoretsky ©   (2002-06-05 17:48) [12]

Маленкое но, когда компилируется без использования рантайм библиотек, то библотеки не включаются в состав ехе, а включаются только необходимые куски кода из этих библиотек.
НЕОЮХОДИМЫЕ а не все.


 
Игорь Шевченко ©   (2002-06-05 17:50) [13]

EternalWonderer (05.06.02 17:38)

Нет, можно не проверять - не экспортирует. EXE сделанный с помощью Delphi вообще ничего не экспортирует.



 
Fiend   (2002-06-05 17:53) [14]

да никто собсно и не спорит что только необходимые!!!
Я точно знаю, что моя библия использует тоже что и exe, абсолютно те же функции, один в один. И ведь хочется саму библию компилить без включения этих функций, а использовать то что скомпилено в exe который ее вызвал.

КАК ЭТО БЫЛО БЫ ИЗУМИТЕЛЬНО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Буду бороться с этим до конца, може чё и выйдет


 
Anatoly Podgoretsky ©   (2002-06-05 17:58) [15]

Fiend (05.06.02 17:53)
Это ты знаешь, а Дельфи?


 
EternalWonderer   (2002-06-05 18:01) [16]

Игорь Шевченко © (05.06.02 17:50)
Увы, я предполагаю, Вы правы. Только вот в конец Вашей фразы я поставил бы "... за исключением того, что Вы сами экспортировали." - так будет правильней.


 
Fiend   (2002-06-05 18:02) [17]

Дык я и хочу заставить эту женщину знать тоже что и я
:-)


 
SPeller ©   (2002-06-05 18:09) [18]

А не проще сделать одну DLL с этими злощастными функциями и обращаться к ним из ЕХЕ и других DLL-ок?

2Fiend (05.06.02 18:02)
Дык я и хочу заставить эту женщину знать тоже что и я
Удачи... :-))



 
Игорь Шевченко ©   (2002-06-05 18:12) [19]

EternalWonderer (05.06.02 18:01)

Да, разумеется :-)


 
EternalWonderer   (2002-06-05 18:18) [20]

SPeller © (05.06.02 18:09)
Её (вернее, их) не надо делать - они уже сделаны до нас. Только велики уж очень, - взять бы только нужное. А для этого нужно:
1)собрать dll, экспортировать из неё все требуемые функции;
2)найти способ переназначить обращение из скомпилированных "с использованием Runtime - библиотек" .exe от *.vcl к new.dll.
Боюсь, это перегруз - не потянуть.


 
Fiend   (2002-06-05 18:21) [21]

SPeller"у
можно поступить и так, но это немного из другой оперы.
Если поступить так, то мне придётся описать в вызывающем коде все прототипы функций, классов и т.д.
Прикинь на секунду, скока это работы?????!!!!!
Я же хочу другого. Представь себе процесс работы с библиями:
я в своём проекте динамически подгружаю библию при помощи LoadLibrary, когда эта зараза загрузилась, происходит инициализация (сотворённая компилятором делфи), которая, если нужны рантайм пакеты, загружает их и импортирует необходимые функции при помощи GetProcessAddress, если они не нужны, то считается что всё нужное уже загружено и библия готова к работе


 
Fiend   (2002-06-05 18:29) [22]

Вот если бы успеть сделать что то до инициализации которую делфа вытворяет, то проблема была бы решена.

Что скажете??????????



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

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
1-55196
nea
2002-06-03 20:32
2002.06.17
Фон в MDI


14-55307
Malder
2002-05-15 17:02
2002.06.17
Ответ на задачку


8-55221
Sergy
2002-01-28 17:07
2002.06.17
Вопрос: Может кто-нить знает как определить размеры графических файлов формата(jpg, gif и pjpg)


6-55258
OGR
2002-02-06 13:34
2002.06.17
Как отключить скроль в TWebBrowser?


3-55032
Ziplex
2002-05-24 10:13
2002.06.17
Сортировка БД