首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dwscript作为Delphi应用程序的插件框架

使用dwscript作为Delphi应用程序的插件框架
EN

Stack Overflow用户
提问于 2013-04-09 01:03:09
回答 2查看 748关注 0票数 1

有没有办法使用dwscript作为Delphi应用程序的插件框架?例如,我在dwscript中有一个简单的方法来添加数字,这个方法需要从宿主应用程序中调用。

一种解决方案是将dwscript保留为文本文件,并在运行时加载该文本文件,然后从主机调用该方法。有没有办法创建一个包含dwscript的dll,并在运行时加载该dll,然后调用该方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-20 13:54:09

应该没有问题,但你应该先看看如何在delphi中管理dll插件,因为有一些限制:

查看delphi.about.com有一些教程。http://delphi.about.com/od/windowsshellapi/a/dll_basics.htm

你首先会发现的一个问题是,你可能会遇到类的问题,因为DLL就像一个独立的应用程序,所以它会创建自己的Class表。因此,对于宿主应用程序,dll中包含的类TDWScript是一个与它包含的类(宿主)不同的类。

有一些方法可以实现这一点,这取决于您的需求:

1)例如,您可以调用DLL方法,而不是直接调用TDWscript类,而只是调用像“ExecuteScript( afilename )”这样的方法。

2)如果你的插件需要与主机应用程序交互,这是很复杂的,因为你必须建立一个通信协议,以便两者(主机和插件可以交互)

选项是: a)使用接口而不是直接使用类。b)使用共享内存(随delphi提供)或fastMM4 (开源)这样的内存管理器,它们应该包含在机器人动态链接库和应用程序中,因此它们将共享相同的内存管理器和相同的类表。

如果你是插件的新手,请查看那里的绝地VCl组件,他们有一个JvPlugin和JvPluginManager,这是一个简单但强大的框架,可以开始创建你自己的插件框架。有一些如何管理插件的演示,使用DLL的方式创建它们。这对你想要的可能是有用的。还演示了如何使用接口,而不是直接使用类。

票数 1
EN

Stack Overflow用户

发布于 2013-04-09 03:02:24

DWS不创建DLL。它将pascal样式的源代码编译为中间文件以供执行,因此如果您愿意,您可以将文本文件部署为插件。关于回调DWS源代码下载并运行DWS站点tools目录中的IDE演示的示例,这有一个'execute procedure‘菜单选项和一个简单的源代码来查看它是如何完成的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15884867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档