FireFox插件和扩展开发(二)——编写和使用XPCOM组件

用C++编写XPCOM组件

 

还是先开看看官网给的例子,下载示例程序 xpcom-test

 

配置方法见文章 https://developer.mozilla.org/en/How_to_build_a_binary_XPCOM_component_using_Visual_Studio

没有必要下载该文章中的Gecko-SDK,如果使用较新版本的xul-runner,使用它的SDK就可以了,

 

如果不使用Gecko-SDK,直接使用xul-runner的SDK,项目的一些配置需要修改:

1、项目属性中的"附加包含目录位置为(xul-runner dirpath)/sdk/include,“附加库目录为”(xul-runner dirpath)/sdk/lib

2、由于XPCOM需要使用xpidl工具生成.h和.xpt文件,每次用命令行的方式比较繁琐,可以使用该例程中的批处理文件,示例程序中的xpidl-build.bat文件为执行该工作,设置项目属性中的“自定义生成步骤”->“命令行”->"xpidl-build.bat",这样在编译该项目的时候就会自动生成.h和.xpt文件

 

 

编译该项目,成功后生成的.dll文件和.xpt文件,现在我们来看看如何使用这个组件

 

 


 

 

测试组件

文章中介绍的测试组件方法写的太简单,完全摸不着头脑,经过不断的钻研,我提供出以下两种方法

 

 

方法一、通过网页调用

1、将dll和xpt文件放在FireFox的components目录下,windows下路径是C:/Program Files/Mozilla Firefox/components

2、删除profiles下的注册文件compreg.dat和xpti.dat,profiles在windows下路径是%appdata%/Mozilla/Firefox/Profiles/**.default

3、重新启动FireFox,打开xpcom-test.html网页

 

xpcom-test.html代码

note:netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");这句话一定要加,否则没有效果,折腾一下午就因为这个没加,怎么也调不出来,这句话是用来授权使我们可以访问浏览器的API

 

方法二、使用xulrunner

 

需要在磁盘上建立如下结构的目录和文件

{appname}这个名字随便写,就是随便给目录起个名字作为根目录,下面用到的"|"表示目录的深度

|-application.ini

|-chrome

||--chrome.manifest

||--xpcom-test

|||---test.xul

|-defaults

||--preferences

|||---prefs.js

|-components 这个目录下放编译好的dll和xpt文件

||--comp.xpt

||--test.dll

 

 

application.ini文件

 

chrome.manifest

 

test.xul

 

如果这个文件中需要控件用中文显示,需要保存为utf-8格式

 

prefs.js

 

这些文件都写好后,需要用命令行进入xulrunner.exe目录下,位置是xulrunner-sdk/bin

输入命令xulrunner {appname dir}/application.ini

就可以看到窗口的左上方出现一个带按钮的新窗口

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值