Можем ли мы использовать dcu (скомпилированный модуль Delphi) во время выполнения?

Можем ли мы использовать dcu в среде выполнения, такой как dll? Например, показать форму, скомпилированную в файле dcu. У меня вопрос, потому что я хочу разработать подключаемое приложение. Как программист Delphi, насколько я знаю, у меня есть только два варианта сделать это: на основе dll или bpl. Мне нравится на основе dll, потому что он не зависит от версии delphi, но ... сохраните форму в несколько dll, сделайте каждую dll большим размером, а ее общий размер больше, чем один .exe. Использование bpl зависит от версии Delphi, которая скомпилировала и bpl, и exe.

Или кто-нибудь может объяснить трюк или стратегию, чтобы сделать .dll эту сохраненную форму как можно меньше? Спасибо!


person Abdullah Al- Arief    schedule 21.01.2013    source источник
comment
DCU также зависят от версии, поэтому ничего не получат.   -  person Uli Gerhardt    schedule 21.01.2013
comment
DLL - это то, что вам нужно, но вам следует избегать использования VCL в DLL. Ваша программа должна предоставлять возможность VCL, которую вы хотите, чтобы плагины вызывали и предоставляли ее через интерфейсы. Множество шаблонов, но это уходит от ада BPL.   -  person David Heffernan    schedule 21.01.2013
comment
Вы можете использовать библиотеки DLL, скомпилированные с пакетами времени выполнения.   -  person Torbins    schedule 22.01.2013
comment
Множество шаблонов и сбоев после изменений типа компилятора, таких как неоднозначность символов char, PChar и строки. Чтобы использовать DLL и интерфейсы, следует полагаться на типы данных, стандартизованные в COM, даже если не используется сама инфраструктура COM.   -  person Arioch 'The    schedule 22.01.2013
comment
@Torbins, что также делает версию dll зависимой.   -  person Toby Allen    schedule 18.11.2013


Ответы (3)


Нет, вы не можете напрямую получить доступ к файлам DCU из среды выполнения :(

Хранение форм Delphi в библиотеках DLL было довольно распространенной практикой, Google должен иметь возможность подбросить немало примеров.

Delphi Dll - более одной формы / единицы в одной dll

http://www.link-rank.com/dll.htm

http://en.allexperts.com/q/Delphi-1595/2008/6/Call-procedure-DLL-Form.htm

http://www.blitzbasic.com/Community/posts.php?topic=54261

HTH

person Nazar    schedule 21.01.2013

Насколько мне известно, вы не можете получить доступ к .dcu-s во время выполнения. Лучше используйте DLL.

person Bogdan Doicin    schedule 22.01.2013

DCU - это только скомпилированные модули (отсюда и название), они используются для создания exe / dll через компоновщик.

person Ali Avcı    schedule 22.01.2013