2

我有一个使用 js-ctypes 的本地 Windows DLL 的 Firefox XUL 扩展。

分发此 DLL 文件的推荐方法是什么?

我已经建立了一个开发环境,就像XUL School Tutorial中描述的那样,但我不确定我应该对目录结构和相应的构建文件(Makefile、清单等)进行哪些修改才能拥有我的 DLL包含在 XPI 文件中,然后在客户端使用扩展时可用于 js-ctypes。

任何指针将不胜感激。

问候!

4

1 回答 1

2

通常,您只需将 DLL 与其余的东西一起压缩到您的 XPI 中并使用em:unpack=true,否则您将无法加载您的 DLL。

然后,您可以使用例如附加组件管理器来找出 DLL 在用户系统上实际安装的位置,并使用 js-ctypes 加载它。

Components.utils.import("resource://gre/modules/AddonManager.jsm");

AddonManager.getAddonByID(YOUR_ADDON_ID, function(addon) {
    //var uri = addon.getResourceURI(YOUR_RELATIVE_PATH_TO_THE_DLL);
    var uri = addon.getResourceURI("install.rdf");
    console.log("uri", uri.spec);
    if (uri instanceof Components.interfaces.nsIFileURL) {
        var file = uri.file;
        console.log("path", file.path);
    }
});

顺便说一句:当插件通过代理文件安装以用于开发目的时,这些东西仍然有效。

于 2013-10-18T03:00:32.197 回答