balloon
小狐狸
小狐狸
  • UID29835
  • 注册日期2009-07-26
  • 最后登录2009-07-28
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:4041回复:3

如何在扩展中注册xpcom? 注册成功后又如何在扩展调用里面的方法?

楼主#
更多 发布于:2009-07-26 20:39
我写了一个扩展,用来和.so文件进行交互。使用xpcom对idl文件进行接口编译,实现,再生成.so和.xpt文件, 想封装成扩展自动加载到ff中。文件结构如下:
MyTest
  --chrome
   --MyTest.jar
    --skin
    --locale
    --content
  --components
    --nsTest.so
    --nsITest.xpt
  --install.rdf
  --install.js
  --chrome.manifest
我将扩展MyTest.xpi 加载进了ff,但一直不知道动态库文件是否注册成功。请问下:
1、如何写配置文件才能将components文件中的动态库加载进mozilla中去?
2、如果加载成功,怎样才能在扩展或者html中调用动态库里面的函数呢?
希望给出实例代码,非常感谢!
附idl接口:
代码:
#include "nsISupports.idl" 
[scriptable, uuid(f2343287-34ab-a423-329749b8c3a9)] 
interface nsIDemo : nsISUpports { 
    short hello(in short in_num, out char out_ch); 
}
balloon
小狐狸
小狐狸
  • UID29835
  • 注册日期2009-07-26
  • 最后登录2009-07-28
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2009-07-26 20:39
我新接触ff开发不久, 对很多东西不熟悉, 希望老手们给个指点, 或者分享些好的资料, 非常感谢!
balloon
小狐狸
小狐狸
  • UID29835
  • 注册日期2009-07-26
  • 最后登录2009-07-28
  • 发帖数4
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2009-07-26 20:39
第一个问题已解决,方法:打开C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\xi438qjt.default下的xpti.dat文件,在里面搜索你定义的接口,例如:nsIDemo 如果有则注册成功。
但第二个问题有没有人帮忙下啊,谢谢。
jjcang
小狐狸
小狐狸
  • UID23910
  • 注册日期2008-04-29
  • 最后登录2009-09-10
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2009-07-26 20:39
我只是简单看了一下ff的结构,
有一些xpcom的工具应该是用来注册自定义xpcom的。
注册上后可以用类似createInstance,getService的方法从组件工厂中获取组件实例。可以参考一下其它扩展的写法
游客

返回顶部