2013-04-08 5 views
1

Есть ли способ использовать dwscript в качестве плагина для приложения Delphi? Например, у меня есть простой метод в dwscript, который добавляет числа, и это нужно вызывать из приложения-хостинга.Использовать dwscript как плагин для приложения Delphi

Одним из решений является оставить dwscript в виде текстового файла и загрузить текстовый файл во время выполнения и вызвать метод с хоста. Есть ли способ создать DLL, которая содержит dwscript и загрузить DLL во время выполнения, а затем вызвать метод?

ответ

1

Там не должно быть никаких проблем, но вы должны сначала посмотрим, как управлять DLL плагинов в Дельфах, becaus ethere некоторые ограничения:

Проверить delphi.about.com есть некоторые учебники. http://delphi.about.com/od/windowsshellapi/a/dll_basics.htm

Одна из проблем, которые вы обнаружите в первую очередь, заключается в том, что у вас могут быть проблемы с классами, поскольку DLL - это как независимое приложение, поэтому оно создает свою собственную таблицу классов. Таким образом, для хост-приложения класс TDWScript, содержащийся в dll, представляет собой другой класс, который он содержит (хост).

Есть несколько способов, вы можете acomplish, что и это зависит от того, что ваши потребности:

1) Можно методов DLL пример вызова, непосредственно не вызывая класс TDWscript, просто вызывая метод, как «ExecuteScript (afilename)»

2) Если ваш плагин должен взаимодействовать с хост-приложением оно mroe комплекс, потому что вы должны укрепите протокол связи, так как (хост и плагин может взаимодействовать)

варианты: a) Использовать интерфейсы вместо класов ses напрямую. b) Используйте диспетчер памяти, такой как sharemem (который поставляется с delphi) или fastMM4 (с открытым исходным кодом), который должен быть включен в ботовую DLL и APP, чтобы они совместно использовали один и тот же менеджер памяти и, таким образом, одну и ту же таблицу классов.

Если вы новичок в плагинах, пожалуйста, проверьте компоненты JEDI VCl там, у них есть JvPlugin и JvPluginManager, простая, но мощная платформа, которая начнет создавать ваши собственные плагины. Есть несколько примеров того, как управлять плагинами, создавать их с помощью DLL-метода. Что может быть полезно для того, что вы хотите. а также демонстрацию того, как вы можете использовать интерфейсы вместо прямого использования классов.

2

DWS не создает библиотеки DLL. Он компилирует исходный код в стиле pascal для промежуточного файла для выполнения, поэтому вы можете развернуть текстовый файл в качестве подключаемого модуля, если хотите. Например, чтобы вернуться в исходный код источника DWS и запустить демонстрационную версию IDE в каталоге инструментов сайта DWS, у этого есть опция меню «выполнить процедуру» и простой источник, чтобы увидеть, как это делается.

+0

Спасибо, что было полезно. – rhody

Смежные вопросы