Как распространять родную Windows DLL для использования с js-ctypes внутри расширения XUL Firefox

У меня есть расширение Firefox XUL, которое использует собственную библиотеку DLL Windows с использованием js-ctypes.

Каков рекомендуемый способ распространения этого DLL-файла?

Я настроил среду разработки, аналогичную той, что описана в Учебнике по XUL School Tutorial., но я не уверен, какие изменения следует внести в структуру каталогов и соответствующие файлы сборки (Makefile, manifest и т. д.), чтобы моя DLL была включена в файл XPI, а затем была доступна для js-ctypes, когда клиент использует расширение.

Любые указатели будут очень признательны.

С Уважением!


person mepilk    schedule 17.10.2013    source источник


Ответы (1)


Обычно вы просто заархивируете 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);
    }
});

Кстати: этот материал по-прежнему работает, когда дополнение установлено через прокси-файл в целях развития.

person nmaier    schedule 18.10.2013