Plugins 如何编写插件?

Plugins 如何编写插件?,plugins,Plugins,嘿,伙计们,我需要创建一个插件来更新应用程序。 看,我有一个主机应用程序,但我可能会用它更新更多的功能。我正在使用Delphi7在Windows中工作。 基本上,“我的插件”应该向主机应用程序添加2到3个新功能。 如何编程一个插件(或功能),在宿主应用程序中插入新代码(新功能),而无需重新编译它 注:我对我的英语感到抱歉。我的母语是西班牙语 谢谢你了, Yulien.实现这一点有不同的方法,我将给你一个最基本的方法 假设您在Windows上使用C#编程(其他语言和环境类似) 第一部分。您需要能够

嘿,伙计们,我需要创建一个插件来更新应用程序。 看,我有一个主机应用程序,但我可能会用它更新更多的功能。我正在使用Delphi7在Windows中工作。 基本上,“我的插件”应该向主机应用程序添加2到3个新功能。 如何编程一个插件(或功能),在宿主应用程序中插入新代码(新功能),而无需重新编译它

注:我对我的英语感到抱歉。我的母语是西班牙语

谢谢你了,
Yulien.

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

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

第一部分。您需要能够加载程序集(如果C++是DLL)。您可能希望从配置文件中获取此信息。对于您希望插件应用程序扩展的每一项功能,都要这样做

第二部分。您需要能够从这个插件调用代码,所以将功能放在一个接口中。例如,主应用程序将编码到接口IMyPluginCapability,而您的插件将包含实现该接口的某些类。您可以通过反射来确定是哪个类

第三部分。调用希望插件扩展的函数


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

您没有指定您工作的语言或平台,因此我只能给您一个一般性的答案

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

有关详细信息,请在internet上搜索Windows上的函数LoadLibrary()或Un*x/Linux系统上的函数dlopen()


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

平台、编程语言等?如果没有某种上下文,这个问题毫无意义。对不起,伙计!我正在使用Delphi在Windows桌面应用程序中工作。