0

我有一个插件,当我将它与 GeckoSDK 1.9 链接时,它工作正常。

现在我切换到使用 GeckoSDK 1.9.1.16,它停止在 Linux 上被检测到(在 Windows 上它仍然可以正常工作) - about:plugins 不再显示它!

除了在 makefile 中切换 INCLUDE/LIB 目录并重命名 nppupp.h -> npfunctions.h 之外,没有其他更改。

我用 Firefox 3.5、3.6 和 4.0 beta 对其进行了测试——结果相同。

有任何想法吗?

4

2 回答 2

1

如果它是一个原始的 NPAPI 插件,我建议使用npapi-headers项目,它提供的头文件应该适用于所有浏览器和所有平台。gecko-sdk 中的 npapi 标头偶尔会给我带来问题。我会说这至少值得一试。

于 2011-02-25T01:19:12.303 回答
1

好的,如果有人感兴趣,我会回答我自己的问题。

事实证明,他们不只是重命名 npupp.h -> npfunctions.h,而是以某种方式重新排列了标题。

结果,在定义 XP_UNIX(在 prcpucfg.h 中)之前包含 npfunctions.h,这反过来导致我的代码中的 npentry 函数(NP_GetMIMEDescription 等)在没有事先声明的情况下被定义,因此具有 C++ 链接,因此浏览器找不到它。

您好 Mozilla,自包含标头是怎么回事?

于 2011-02-26T03:49:17.157 回答