Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写C++;Windows上的Firefox3插件(不是扩展)? 有人可以写一个一步一步的指南来开发基于Windows的Firefox的基于C++的插件吗?p>_C++_Windows_Firefox_Plugins - Fatal编程技术网

如何编写C++;Windows上的Firefox3插件(不是扩展)? 有人可以写一个一步一步的指南来开发基于Windows的Firefox的基于C++的插件吗?p>

如何编写C++;Windows上的Firefox3插件(不是扩展)? 有人可以写一个一步一步的指南来开发基于Windows的Firefox的基于C++的插件吗?p>,c++,windows,firefox,plugins,C++,Windows,Firefox,Plugins,上的链接和示例都是旧的和不准确的——“新”链接是在2004年添加到该页面的 这个例子可以是任何东西,但我在想一个插件,让JavaScript设置名称,然后显示“Hello{name}”。为了显示双向通信,它可以有一个返回完整称呼的属性 虽然没有那么重要,但如果插件也能在Chrome中工作就好了。使用NPAPI制作插件相当简单。Gecko发行版需要的关键头文件是npapi.h和npupp.h。您将从插件DLL或共享库中导出名为NP_Initialize、NP_Shutdown、NP_GetMIME

上的链接和示例都是旧的和不准确的——“新”链接是在2004年添加到该页面的

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


虽然没有那么重要,但如果插件也能在Chrome中工作就好了。

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

从该集合实现的关键功能是NPP_New和NPP_Destroy。这些定义了插件实例的生命周期。如果您要处理从or链接的媒体文件,您还需要处理NPP_NewStream、NPP_WriteReady、NPP_Write和NPP_DestroyStream,作为插件从浏览器获取文件数据的一种方式。还有更多内容。

另请参见。是的,NPAPI插件也应该在Google Chrome中工作


[编辑2015:Chrome将很快取消对NPAPI的支持]

查看Nixysa。我试图在Mozilla SDK中构建示例,但它们很难构建。Nixysa示例很容易构建。另外,代码比直接使用NPAPI要简洁得多。唯一的缺点是,到今天为止,Nixysa还没有很好的文档记录。我有一个Nixysa示例,如果您需要,它可以实现回调(我确实计划在我着手使用时向Nixysa提交一个补丁)。

如果您需要跨浏览器(firefox和ie)工作的东西,您可以查看firebreath:

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

然而,我真的推荐firebreath,因为我们创建firebreath完全是为了那些没有时间做几个月(字面上)的研究的人,我们花了几个月的时间来弄清楚它是如何工作的。如果你不想把它作为你插件的基础,你仍然可以在那里找到很多好的示例代码

也可以在windows上使用chrome、firefox和safari!=]


祝你好运

你试过把它作为扩展吗?我还没有找到一个单一的NPAPI的Visual Studio解决方案,将建立!如果你还拥有它,我想看看你的代码,以及如何构建它的说明。。。nixysa有解决方案文件,例如“complex”,但它也不编译。使用SCON,示例确实可以编译,但是编译的dll被破坏了,它缺少东西(?),Chrome也找不到插件的方法。谢谢。哇,伙计,你刚刚救了我的命,谢谢你的api和全方位的英雄贡献。