powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Организационный вопрос для проекта EXE и DLL
44 сообщений из 44, показаны все 2 страниц
Организационный вопрос для проекта EXE и DLL
    #39705298
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

есть проект, или даже проекты. они все лежат на одной базе, всему проекту уже почти 20.
за год достаточно легко перекатил на XE10, так как использовалось в основном все самописное или ну очень стандартное типа RX, EH и ODAC.
но основной EXE файл достаточно большой, и грузить память процессами тоже не хочется.

сам проект содержит в себе , редактор документов, типа Word, редактор типа Excel , почтовый клиент, учет данных - четыре разных направления (можно сказать четыре проекта), большие НСИ (справочники контрагентов - для всех проектов) и другие справочники, некоторые для конкретных проектов, а некоторые общие. Общих НСИ не мало.

В целом организовано всё хорошо, просто большой файл. Теперь вопрос, могу ли я сделать так:
Я хочу разнести проект на несколько файлов, выделить один стартовый EXE и кучу DLL отвечающих за свои проекты (обзову так),
примерно:
Основной файл - EXE, который при необходимости подтягивает одну или две или три DLL, которые имеют в себе не просто обработчики но и визуальные формы (гриды, поля и все такое).
Важно, может ли DLL иметь версию при компиляции? Build???
На сколько возможно и проблематично перетаскивать какие нибудь переменные по открытым активным DLL-кам.
Как себя поведут компоненты ClientDataSet открытые в одной DLL для использования в другой.

Что по советуете и можно ли организовать так, как я описал.

Спасибо
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705305
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705307
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63Я хочу разнести проект на несколько файлов

Что по советуете и можно ли организовать так, как я описал.

Спасибо
Я советую Вам срочно уволиться, пока Ваше руководство не узнало, что Вы страдаете от безделья на рабочем месте до такой степени, что у Вас начали появляться странные желания. Таки шутка. А теперь серьезно.

Хотеть Вы можете чего угодно. Хоть переписать проект на другой ЯП. Кто за это заплатит? Владелец фирмы, которая делает этот проект? Вы из личных сбережений на черный день?
Если Вам на голову кирпич упадет в середине процесса переделывания проекта - кто еще в фирме сможет подхватить упавшее знамя и довести переделку до победного конца?
Чем мотивируется необходимость такой переделки? В чем весь цимес? Медленная компиляция, потребление оперативной памяти до такого уровня, что начинается ее нехватка и своп, в чем первопричина? Или Вы решили за счет работодателя пополнить резюме строчкой "переписал 20-летний проект на новый лад, разбив на отдельные куски"?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705312
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovyemets63Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.


+1
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705314
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было, много раз. Например: http://www.sql.ru/forum/1211085-1/monofayl?hl=????????


Это сезонное.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705320
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63но основной EXE файл достаточно большой
Сколько ?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705323
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

dll имеет смысл если в ней выделен функционал, который используется несколькими разными exe.
Или, если exe один, но предполагается заменять (или подменять) часть функционала не меняя весь exe (типа плагины).
Кроме этих двух случаев другого смысла городить exe + dll нет, совершенно.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705330
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему сразу dll? На dpl проект можно распилить довольно легко.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705332
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvyemets63,

dll имеет смысл если в ней выделен функционал, который используется несколькими разными exe.
Или, если exe один, но предполагается заменять (или подменять) часть функционала не меняя весь exe (типа плагины).
Кроме этих двух случаев другого смысла городить exe + dll нет, совершенно. Ну и когда изпользуется визуальное наследование, базовый класс нужно вынести в одтельный пакет. Неужели у ТС его нет? )))
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705339
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63 DLL

И это при том, что дельфя спроектирована так, что можно получить все вкусности от DLL, не плодя сами DLL.
Понять это можно далеко не сразу, а после опыта поддержки разных проектов, где по советам ушлых С++ прогеров проекты таки разделены на эти самые DLL или bpl.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705423
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63Что по советуете и можно ли организовать так, как я описал.СпасибоМожно, но первый шаг к этому другой. Нужно добиться минимальной связности между модулями исходников оставляя их единым .exe. Такой рефакторинг можно делать не в ущерб основной работе и он более инкрементален и, следовательно, безопасен.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705439
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плюсую, бесполезное занятие, несущее только кучу геморроя. Передавать в DLL формы и датасеты... это кошмарно. Память винда и так выделяет разумно. Если не нравится жирный бинарник, сожми его upx-ом.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705453
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2 Если не нравится жирный бинарник, сожми его upx-ом.

А вот это плохой совет.
1) Приложение начинает есть больше памяти
2) на сжатые приложения часто нервно реагируют разные антивири
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705515
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster2) на сжатые приложения часто нервно реагируют разные антивири+500

Помницца после очередного обновления винды решил спаковать ЕХЕ. Спаковал и ..... ЕХЕ файл тупо исчез.
Не сразу понял, что его грохнул встроенный виндовый антивирь. :)
До обновления все было хорошо.
Даже на почту получить такой файл (в зип-архиве) винда уже не давала.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705553
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63, разделение на DLL ради экономии памяти это практически не реализуемая задача.
Основной объём откомпилированного кода это не Ваша крутейшая программа хоть бы она и 20 лет писалась, а код всяких используемых библиотек компонентов (подозреваю что их там зоопарк как и в большинстве подобных проектов). И этот код будет прикомпилироваться к вашей каждой отдельной DLL в результате она будет лишь не много меньше основного exe, в сумме будет существенное увеличение размера. Если в dll отказаться от всех, вообще всех подключаемых юнитов, то практический толк от неё какой? Ну вынесешь решение квадратного уравнения в отдельную библиотеку, и это на 10 килобайт сэкономит оперативку пользователя который не использует данную функциональность, зато 100 килобайт лишних отъест у пользователя, который использует.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705559
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63но основной EXE файл достаточно большой, и грузить память процессами тоже не хочется.yemets63В целом организовано всё хорошо, просто большой файл.
yemets63Что по https://www.gunsmoker.ru/2011/04/windows-spin-off.html#n10
https://www.gunsmoker.ru/2010/12/blog-post.html
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705562
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63... Что по советуете и можно ли организовать так, как я описал Организовать можно, но сложно.
Советую разобраться с существующим кодом: посмотреть, что дублируется вынести копиасты в одельные модули, использовать наследование форм, слить все TImageList в одну общую коллекцию, избавится от неиспользуемых юнитов и малоиспользуемых компонентов, не забывать отключать отладочную информацию при компиляции "релизных" приложений, сделать несколько exe заточенных под разные нужды (они уже внутри себя должны использовать общие модули).
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705648
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

То есть проблема в боязни большого файла?
А не проще будет перестать бояться?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705650
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор так и не ответил насколько его файл большой
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705721
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У 11-го оракла 102 мегабайта exeшник, и ничего, не жужжат.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705784
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63 Я хочу разнести проект на несколько файлов, выделить один стартовый EXE и кучу DLL отвечающих за свои проекты (обзову так), Не делайте это, пока без этого можно обойтись.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705794
MaratIsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovyemets63Что по советуете

Пойди пивка попей пока не перехочется наживать себе геморрой на всю голову.


+100500
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705802
чччД__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yemets63,

не слушай их, они просто не умеют на дельфи создавать длл-ки, конечно же разделяй все на ехе и длл, а если не разделять, то приложение будет зря потреблять память и грузиться долше будет, и через интернет дольше обновления рассылать если сто, а когда одним куском то шиш разберешь откуда ноги растут а если раздельно - то все структурировано и понятно, и легко править и отлаживать приложение когда все по раздельности, и можно комплекс кодить на разных языках программирования а не только на Дельфи, и еще можно работать командой когда каждый свой кусок делает а когда все в одном то нельзя, короче твой выбор верный.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705837
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
чччД__yemets63,

не слушай их, они просто не умеют на дельфи создавать длл-ки, конечно же разделяй все на ехе и длл, а если не разделять, то приложение будет зря потреблять память и грузиться долше будет, и через интернет дольше обновления рассылать если сто, а когда одним куском то шиш разберешь откуда ноги растут а если раздельно - то все структурировано и понятно, и легко править и отлаживать приложение когда все по раздельности, и можно комплекс кодить на разных языках программирования а не только на Дельфи, и еще можно работать командой когда каждый свой кусок делает а когда все в одном то нельзя, короче твой выбор верный.
хочу ещё дополнить от себя, что программа с сотней DLL смотрится гораздо круче,
чем когда всё в одном EXE !
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705856
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главное уметь правильно грузить библиотеки!

Тут один , научился загружать из Dll классы.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705861
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГирлионайльдоГлавное уметь правильно грузить библиотеки!

Тут один , научился загружать из Dll классы.

Там есть модуль который написан каким то кривожопом. И создаёт утечку памяти. Так что я ещё давно фиксанул это дело
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705867
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Гирлионайльдонаписан каким то кривожопом
DLL hell
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705875
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

А - а -ааа. А там, нет такой проблемы. Потому как Delphi умеет загружать информацию из модуля.

А следовательно, всю RTTI портянку, которая там есть.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
program SempleLoadDllClasses;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  ShareMem, Windows,
  System.SysUtils, UnitClass, RTTI;

type
  LibModuleListAddres = function(): PLibModule;

var
  GetLibM: LibModuleListAddres;
  DllHandle: THandle;
  UnitClass: TUnitClass;
  c: TRttiType;
  i: Integer;
  Methods: TArray<TRttiMethod>;

begin
  try
    DllHandle := LoadLibrary('LoadDllCLasses.dll');

    @GetLibM := getprocaddress(DllHandle, 'LibModuleListAddres');

    RegisterModule(GetLibM());

    c := UnitClass.FindType('Vcl\StdCtrls\TMemo');

    Methods := c.GetMethods;
    Writeln(c.ToString, ' Функций: ', Length(Methods));
    for i := Low(Methods) to High(Methods) do
      Writeln(Methods[i].ToString);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  Readln;

end.

...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705876
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Гирлионайльдоdefecator,

А - а -ааа. А там, нет такой проблемы. Потому как Delphi умеет загружать информацию из модуля.
это не имеет отношения к DLL Hell
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705877
Гирлионайльдо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, выше пример. Очень хороший пример реализации того, как можно создать систему плагинов. И пилить под шаблон кучу плагинов как в Аимпе
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39705878
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ГирлионайльдоКстати, выше пример. Очень хороший пример реализации того, как можно создать систему плагинов. И пилить под шаблон кучу плагинов как в Аимпе
все эти ваши системы плагинов устарели 10 лет назад
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39708744
yemets63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прикольно, всем спасибо и за пиво тоже.

основной цели экономить память нет, как бы во всех случаях прописано освобождение памяти, проект начинал писаться со времен Целеронов и отсутствия памяти. Цель причесать все 16 самостоятельных проектов, 12 из которых расположенные в одном exзeшнике и навести ПОРЯДОК, так как проект по ходу будет жить теперь дольше, чем прожил и подгружаемые модули без передачи данных написанные еще на 3-м дельфи адаптировать в один стиль, так как база одна. но и конечно разделить каждый проект в свой модуль, который достаточно удобно будет обновить один DLL объемом в 20 Мб, чем обновлять самим себя весь EXE объемом в 100 Мб на всех рабочих местах.

я попробовал потестировать, основной модуль где менюшка и пару небольших служебных модулей отправил в DLL, РАБОТАЕТ и не плохо работает. и памяти кушает меньше.

P.S.
и теперь вопрос про Delphi 3, а нет Delphi 7, нет, создам новый топик
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39708757
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yemets63,

к слову, бинарник в память не грузится никогда целиком. читайте рихтера, там всё расписано.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39708760
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonyemets63,

к слову, бинарник в память не грузится никогда целиком. читайте рихтера, там всё расписано.

Грузится, если сжат каким-либо упаковщиком :)
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39708975
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonyemets63,

к слову, бинарник в память не грузится никогда целиком. читайте рихтера, там всё расписано.

А стартующий с сетевого ресурса?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39708995
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LocksmithPCmakhaonyemets63,

к слову, бинарник в память не грузится никогда целиком. читайте рихтера, там всё расписано.

А стартующий с сетевого ресурса?
А стартующий по пятницам?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39709108
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я всегда стараюсь dllей наплодить. Нет dll - нет функционала, и контрол анвизибл.
Зато можно легко менять версии дллей и расширять/урезать функционал всей софтины.
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39709116
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КотовасияА стартующий по пятницам?


Выключай дурака
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39709693
Фотография roschinspb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorА я всегда стараюсь dllей наплодить. Нет dll - нет функционала, и контрол анвизибл.
Зато можно легко менять версии дллей и расширять/урезать функционал всей софтины. А еще, еще... можно использовать свои DLL в других приложениях, и использовать в своей программе модули, которые написали программисты на другом языке программирования.
Но конечно, надо понимать, что использование Dll это не только лишь всё. Приложение не может считаться успешным, если в нем нет ассемблерных вставок, круглых кнопок, и многопоточности. Советую двигаться в этом направлении!
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39709737
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roschinspb,

ДА!!! Вот есть у меня OCR dll. Но, гада, плохо понимает восточные иероглифы и кривые фотки. Есть у клиента эта дллька - пусть работает, нет - и соблазна нет.
_________
Нынче асмы теряют популярность - железки слишком разные.
И круглые кнопки уже не в моде. Нужно в виде бабочек или морских драконов, чтобы разноцветно крыльями махали и море огнем поджигали.
===========
Тут бабочка прилетала,
Крылышками помахала,
Стало море потухать –
И потухло. &copy
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39709988
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorИ круглые кнопки уже не в моде. Нужно в виде бабочек или морских драконов, чтобы разноцветно крыльями махали и море огнем поджигали.
Фигу. Сейчас модны тупо одноцветные прямоугольники.

28 лет эволюции. Охрененный прогресс, правда?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39710012
Котовасия
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2GatorИ круглые кнопки уже не в моде. Нужно в виде бабочек или морских драконов, чтобы разноцветно крыльями махали и море огнем поджигали.
Фигу. Сейчас модны тупо одноцветные прямоугольники.

28 лет эволюции. Охрененный прогресс, правда?


Дальтонок, што ли? Или вообще зрение монохромное?
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39710014
EAlexander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2GatorИ круглые кнопки уже не в моде. Нужно в виде бабочек или морских драконов, чтобы разноцветно крыльями махали и море огнем поджигали.
Фигу. Сейчас модны тупо одноцветные прямоугольники.

28 лет эволюции. Охрененный прогресс, правда?


Конечно охрененный, за нцать лет кнопка из Open стала Yes :) Наверное все-таки смогли сделать Open и теперь радуются - Yes:)
...
Рейтинг: 0 / 0
Организационный вопрос для проекта EXE и DLL
    #39710155
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EAlexander,

следующим циклом придумают тень и подсветку хоткея :) всё движется по спирали, ничего нового )
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Организационный вопрос для проекта EXE и DLL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]