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

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, к примеру, делает это на каждом шагу.



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

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



Память: 0.46 MB
Время: 0.007 c
6-90342
glycol
2001-11-05 14:41
2002.01.28
Как проверить eMail ?


1-90307
dmitry_s
2002-01-11 11:52
2002.01.28
Delphi5 & MSSQL uniqueidentifier


4-90433
Alex870
2001-11-28 23:18
2002.01.28
Привет апишники!


3-90196
Тонио-Лунатик
2001-12-21 17:34
2002.01.28
TIBQuery?


14-90362
Дремучий
2001-12-03 23:44
2002.01.28
Китайские сервера!




   Наверх