如何在Windows上编写C ++ FireFox 3插件(不扩展)?

有人可以写一步一步的指导,开发基于C ++的插件Windows上的FireFox?

http://www.mozilla.org/projects/plugins/上的链接和例子都是旧的和不准确的 – “新”链接在2004年被添加到页面。

这个例子可以是任何东西,但我想的是一个插件,让JavaScript设置名称,然后显示“Hello {Name}”。 为了显示双向沟通,可以有一个返回完全称呼的属性。

虽然不是那么重要,但是如果插件也可以在Chrome中运行,那也不错。

参见http://developer.mozilla.org/en/Plugins 。 是的,NPAPI插件也可以在Google Chrome中使用。

[编辑2015:Chrome很快删除了对NPAPI的支持http://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html ]

如果你需要跨浏览器的东西(firefox和ie),你可以看看firebreath: http : //www.firebreath.org

对于一般的“如何在windows上构建一个npapi插件”的信息,我有一些关于这个主题的博客文章(也链接到上面的一些来源)

http://colonelpanic.net/2009/03/building-a-firefox-plugin-part-one/

我真的推荐Firebreath,因为我们为那些没有时间去研究这些月份(字面意义上的)的人创造了它,这让我们去了解它是如何工作的。 如果你不想用它作为插件的基础,那么你仍然可以在那里找到很多很好的示例代码。

应该在Windows上使用Chrome,Firefox和Safari浏览器! =]

祝你好运!

使用NPAPI制作插件相当简单。 您需要从Gecko发行版中获得的关键头文件是npapi.h和npupp.h。 您将从插件DLL或共享库中导出函数名称为NP_Initialize,NP_Shutdown,NP_GetMIMEDescription和NP_GetValue,并且您还需要填写NP_Initialize调用中给出的符号表,并使用所有NPP的处理程序功能。

从该集合实现的关键功能是NPP_New和NPP_Destroy。 那些定义插件实例的生命周期。 如果要处理从<object>或<embed>链接的媒体文件,则还需要处理NPP_NewStream,NPP_WriteReady,NPP_Write和NPP_DestroyStream作为插件从文件中获取文件数据的方式浏览器。 Gecko Plugin开发者指南还有很多。

查看Nixysa http://code.google.com/p/nixysa/ 。 我试图在Mozilla SDK中构建示例,但很难构建。 Nixysa样本很容易构建。 再加上代码比直接使用NPAPI更加整洁。 唯一的缺点是,截至今天Nixysa没有很好的记录。 我有一个Nixysa样本,实现回调如果你想要的(我打算提交一个补丁,当我到它周围的Nixysa)。