我可以使用NPAPI在一个DLL中创建多个插件吗

May I create multiple Plugins in one DLL using NPAPI?

本文关键字:DLL 创建 插件 一个 NPAPI 我可以 可以使      更新时间:2023-10-16

到目前为止,每个.dll文件只能有一个插件,对吗?浏览器对每个dll只调用NP_GetEntryPointsNP_InitializeNP_Shutdown"一次",对吗?

我的目标是在一个动态库中创建多个插件。这可能吗?如果可能,怎么可能?

到目前为止,我看到的是,每个.dll文件只能有一个插件,这是正确的吗?

不,您可以在一个DLL中实现多个插件。

浏览器对每个dll只调用NP_GetEntryPoints、NP_Initialize和NP_Shutdown"一次",对吧?

每个进程和加载仅一次(请记住,当没有实例处于活动状态时,它将被卸载)。

我的目标是在一个动态库中创建多个插件。这可能吗?如果可能,怎么可能?

这是可能的。您只需为同一个动态库注册不同的mimetype(例如,在Windows上,注册表中的几个mimetype条目指向同一个DLL)。

NPP_New()得到一个NPMIMEType作为它的第一个参数,让我们确定请求了哪个"插件"。

此外,NP_GetMIMEDescription()需要进行调整(在Linux和Mac OS上使用)。

在Windows上,您应该在版本信息(条目MIMEType)中有以|分隔的mimetypes列表。