阅读:4330回复:3
如何在扩展中注册xpcom? 注册成功后又如何在扩展调用里面的方法?
我写了一个扩展,用来和.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); } |
|
1楼#
发布于:2009-07-26 20:39
我只是简单看了一下ff的结构,
有一些xpcom的工具应该是用来注册自定义xpcom的。 注册上后可以用类似createInstance,getService的方法从组件工厂中获取组件实例。可以参考一下其它扩展的写法 |
|
2楼#
发布于:2009-07-26 20:39
第一个问题已解决,方法:打开C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\xi438qjt.default下的xpti.dat文件,在里面搜索你定义的接口,例如:nsIDemo 如果有则注册成功。
但第二个问题有没有人帮忙下啊,谢谢。 |
|
3楼#
发布于:2009-07-26 20:39
我新接触ff开发不久, 对很多东西不熟悉, 希望老手们给个指点, 或者分享些好的资料, 非常感谢!
|
|