有人如何使用第三方库包含在Firefox插件/扩展中?
|
我目前正在学习如何使用XPCOM创建Firefox插件,并且我想知道如何包含第三方库来开发它们。我按照一些教程从c ++文件编译.xpt和.dll(注意:https://developer.mozilla.org/en/How_to_build_a_binary_XPCOM_component_using_Visual_Studio和http://nerdlife.net/building-ac-xpcom-component-in -windows /),我不确定我们该如何将这些文件包含到一个插件项目(打包为.xpi文件)中。
我正在使用Opencv(c ++)通过插件进行图像转换,例如将非常大的图像(3mb high res png)调整为小而简单的尺寸(例如600X800 200kb jpg),这将由我的插件完成。我知道Opencv是用c ++编写的,xpcom可以将c ++代码编译为dll和xpt。我阅读了一些教程,但大多数教程都指向在\“ C:/ Program Files(x86)/ Mozilla Firefox / components \”而不是addons \“ components / \”文件夹中添加这些文件(xpt和dll)(我相信这不是插件的工作方式)。尽管Mozilla页面(上面列出)确实包含有关\“ {app} / components \”和\“ {app} /application.ini \”文件夹的内容,但是我从未读过类似的内容,所以我对此感到困惑已经完成了。
我的另一个选择是将Opencv方法制作为可执行文件,然后分别运行它(类似于MemoryFox插件如何运行可执行文件以清除Firefox的内存),然后使用它来调整图像大小。
我真的不确定如何做到这一点(我是插件开发的新手),并且我想知道如何实现这一点(在插件中使用第三方C ++库)。一个例子,教程或解释可以帮助我入门。
提前致谢。
编辑:我也想通知我,我已经阅读了大部分https://developer.mozilla.org/en/Creating_XPCOM_Components(已选择并选择主题),并且没有告诉我如何实现上述目标。
没有找到相关结果
已邀请:
2 个回复
皇小福另届
舜辉
baz_1.idl可能看起来像
生成您的标头和XPI分配
将合同guid链接到FF4的C ++中的合同名称
在C ++中的用法
JavaScript中的用法
例。 我们有一个产品也提供了firefox插件,因此我们不交付xpi,但插件位于产品的子文件夹中。 产品入
插件-让我们称之为foobar
注册插件
所以插件的布局是
在FF <4中,您不需要在清单中列出二进制文件,而是加载了components文件夹中的内容并检查了功能是否为xpcom,因此chrome清单可能看起来像
从FF 4开始,chrome清单需要列出您的二进制文件,因此它看起来像 (我们仅支持FF 3.5之后的64位)
FireFox 5(现已停用)已更改 xpt文件的格式-因此,除非您使用该SDK进行构建,否则FF5不会找到您的接口。 xpcom注册的版本-FF5将不会使用为FF4构建的dll,因为xpcom版本不够高。