Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

DLL и EXE в одном флаконе. 


Alex Marmuzevich   (2002-01-08 23:12) [0]

Сегодня в голову стукнула мудрая мысль.
А можно ли сделать стандартными средствами Delphi (Builder) не прибегая к хакерству такую вещь:
- создать нормальное приложение, которое должно красиво работать и содержать некоторые формы.
- использовать это же приложение как DLL для доступа к этим же формам (понятно, что понадобятся экспортируемые функции и создание + разрушение форм вручную, но так ведь это не проблема).
Смысл: большой проект красиво работает с DLL, в которых много чего и формы. Однако для тестирования лучше запускать приложение.
Понятно, что можно создать 2 проекта (на DLL и EXE)
Или для запуска DLL как приложения вызывать RunDll. Но это не интересно.
Кто чего поможет?



valery_f   (2002-01-09 11:49) [1]

Кажись пахнет OLE-сервером...
Если же тебя интересует просто отладить DLL - в DLL проекте в Run /Run parameters -> Host application ты можешь указать EXE, который зовет твою DLL и отлаживай наздоровье.



Alex Marmuzevich   (2002-01-09 13:06) [2]

Вообще то вопрос был в том, можно ли очень просто сделать 2 точки входа в проекте, WinMain и DllMain.
А уж как отладить DLL, так это слава богу уже давно не проблема ;)



nikkie   (2002-01-09 15:44) [3]

вариант 1.
делаем File/New/Application - добавляем туда все нужные юниты, компиляем - получаем exe
делаем File/New/DLL - добавляем туда все нужные юниты, компиляем - получаем dll

исходники для exe и dll различаются на один файл.

вариант 2.
совмещаем dpr для exe и dpr для dll в одном dpr с помощью $IFDEF. (сам не пробовал, прошу не бить)

компилировать один файл, который можно запускать как exe и загружать как dll, наверное, нельзя - мне кажется это должно быть прописано в заголовке PE.



valery_f   (2002-01-09 16:14) [4]

Alex Marmuzevich>2 точки входа в проекте, WinMain и DllMain.

Такого, действительно, нет. Однако возможна "эмуляция" - сделать EXE OLE-сервером. В этом случае EXE будет работать и сам по себе и плюс выставлять наружу COM-объекты (вместо DLL-функций). Microsoft, к примеру, делает это на каждом шагу.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.013 c
4-90426           csf                   2001-11-29 13:49  2002.01.28  
Handle wincontrol a


14-90383          mashinist             2001-11-28 00:46  2002.01.28  
Апроксимация графика функции.


1-90273           rey_wagner            2002-01-10 00:24  2002.01.28  
Помогите с формами!!!


6-90341           Dinara                2001-11-06 02:32  2002.01.28  
Использование Indy


6-90335           Layet                 2001-11-07 08:13  2002.01.28  
TClientSocket