Mozilla中的XPCOM DLL没有注册

时间:2014-01-30 05:20:59

标签: firefox-addon xul xpcom

我正在创建一个Firefox扩展,其中包含一个适用于Windows的XPCOM DLL。 这个DLL成功构建(我遵循http://briankrausz.com/building-a-c-xpcom-component-in-windows上的教程),DLL导出NSGetModule。我认为这应该没问题。

我将IMyComponent.xpt和MyComponent.dll复制到扩展程序的components目录。

在chrome.rdf中我添加了:

interfaces components/IMyComponent.xpt
binary-component components/MyComponent.dll

但是,DLL未注册。当我在扩展程序的JS代码中调用代码时:

const cid = "@mydomain.com/XPCOMSample/MyComponent;1";
obj = Components.classes[cid].createInstance();

我得到“TypeError:Components.classes [cid]未定义”。

我是否想念任何课程? 我怎样才能调试出错了什么?

1 个答案:

答案 0 :(得分:0)

如上所述:

  

js-ctype开箱即用。 NPAPI基本上已被弃用。 XPCom是最常用的FFI接口,js-ctypes开始越来越多地被采用。有很多东西你无法通过ctypes接口实现(Mozilla-wise)。例如,现在有很多人会实现JavaScript XPCom组件,这些组件在内部使用js-ctypes进行C ++ FFI。