xawi2000
小狐狸
小狐狸
  • UID29240
  • 注册日期2009-06-19
  • 最后登录2009-06-21
  • 发帖数1
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3309回复:0

XPCOM插件开发

楼主#
更多 发布于:2009-06-19 23:35
我用C++做了一个mozilla XPCOM的测试组件,一个动态库和一个XPT文件,我把它们放到Firefox安装目录下的components里,然后用下面的测试程序去测试它。测试程序如下:
<script language="JavaScript">
function doXPCOM() {
  try {
    const cid = "@starkravingfinkle.org/specialthing;1";
    var obj = Components.classes[cid].createInstance();
    obj = obj.QueryInterface(Components.interfaces.ISpecialThing);
  }
  catch (err) {
    alert(err);
    return;
  }

  var res = obj.add(3, 4);
  alert('3+4 = ' + res);

  var name = obj.name;
  alert('Name = ' + name);

  obj.name = 'New Name';
  name = obj.name;
  alert('Name = ' + name);
}
//document.write "test";
doXPCOM();
</script>

结果一直报错,错误中有些乱码,好像是说组件没定义。
错误信息见附件error.jpg,但是我用XPCOMViewer查看
可以看到我的组件存在,而且属性和方法以及CID全都对的上,
我去网上搜索了半天,有人说删除xpti.dat和compreg.dat
就可以注册上了,我把这二个文件删了还是一样,
后来我用UE打开C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\xi438qjt.default目录下面的
xpi.dat和compreg.dat查看,发现xpti.dat中有一段是这样的:
[Files,4]
0,browser.xpt,0,348547,1240533548000
1,comp.xpt,0,170,1245340364343
2,comp.xpt,2,167,1241795451000
3,comp.xpt,3,263,1241795452000,

请问一下为什么一个组件会被定义多次呢?这种情况怎么解决。
附件怎么上传不上来啊,我的文件只有几十K,二个JPG图都发不上来,
一上传就说文件大小限制!
游客

返回顶部