如何编写插件?

时间:2009-10-12 15:35:52

标签: plugins

Hey Folks,我需要创建一个更新应用程序的插件。 看,我有一个主机应用程序,但可能我会用更多功能更新它。我在Windows中使用Delphi 7。 基本上,“我的插件”应该向主机应用程序添加2或3个新功能。 如何编程在主机应用程序中插入新代码(新功能)而不重新编译它的插件(或功能)??

注意:对不起我的英语。我的自然语言是西班牙语。

再次感谢, Yulien。

2 个答案:

答案 0 :(得分:2)

您没有指定您所使用的语言或平台,因此我只能给您一个通用答案。

插件可以通过几种不同的方式实现。最简单的(YMMV)是将插件编译为动态链接库(Windows中的DLL)或共享对象(Linux下的.so),然后使用适当的函数从DLL中获取特定函数并调用它们。

在互联网上搜索Windows上的LoadLibrary()函数或Un * x / Linux系统上的dlopen()以获取更多信息。

另一种方法是在程序中嵌入脚本语言解释器。例如,Firefox是用C / C ++实现的,并将其内部暴露给它的JavaScript解释器(SpiderMonkey) - 这样,所有的Firefox插件都可以用JavaScript编写。

答案 1 :(得分:1)

有不同的方法来实现这一点,我会给你一个最基本的。

假设您在Windows上使用C#编程(其他语言和环境类似)

第1部分。您需要能够加载程序集(如果C ++是DLL)。您可能希望从配置文件中获取此信息。为希望插件应用程序扩展的每个功能执行此操作。

第2部分。您需要能够从此插件调用代码,因此将功能放在界面中。例如,主应用程序将编码到接口IMyPluginCapability,您的插件将包含一些实现此接口的类。你可以通过反思找出哪个班级。

第3部分。调用您希望插件扩展的功能。

您的语言,环境肯定会有类似的功能。您可以查找该环境的详细信息。