sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:29477回复:23

mozilla插件开发太困难了~~

楼主#
更多 发布于:2005-01-26 16:14
写一个插件给浏览器的JAVASCRIPT调用,实现对计算机串口的控制,在IE下,用ACTIVEX可以很容易就做出来了,但是在LINUX的MOZILLA下要实现就困难重重.
费了很大的力气,终于实现了一个脚本可以调用的插件,可以在控制台打印出东西,但是发现调用打开串口的函数OPEN时,运行MOZILLA就出错,说是找不到这个函数.都不知道是什么原因,编译的时候一点错都没有.
有谁做过这方面的开发吗?那里可以找到相关的资料呢?
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-01-26 16:14
问题已经找到了
我看了一下生成库文件,原来用C和C++编译出来的动态库是不一样的,靠~
在MOZILLA上估计只能用C++来做.
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2005-01-26 16:14
你是做plugin么?
plugin的接口是C的。当然具体实现里用C++也没问题。
C和C++之间调用需要extern "C"的。
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2005-01-26 16:14
最新版本的MOZILLA已经不支持通过 XPConnect扩展插件了,只能用XPCOM,原来的东西在新版本里面无法运行.我做了一个可以通过JSP调用的接口,然后另外做一个动态库,一开始没有注意,用GCC编译,结果发现运行时插件找不到动态库的函数,用工具分析以后知道是由于GCC和C++编译出来的库里面的函数名是不一样的,用C++重新编译以后问题解决.
我对C++不熟悉,这次是硬着头皮上了.
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2005-01-26 16:14
先说你要做的是扩展(extension)还是插件(plugin)?
这是两个不同的东西。
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2005-01-26 16:14
插件,插件里面封装通过JSP调用的本地代码.
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2005-01-26 16:14
插件开发曾经使用过XPCOM。但是已经不推荐了。因为C++接口有很多兼容问题。现在仍然推荐C接口的NPAPI。如果是想开发scriptable的插件,直接传XPCOM也过时了,现在推荐的接口是http://www.mozilla.org/projects/plugins/npruntime.html,也是c语言的。直接传C++对象的问题非常多。
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2005-01-26 16:14
晕倒,当时我在这个网站转了很多天也没有看到这个网页.
说实话,我挺讨厌用C++.多谢斑竹!
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2005-01-26 16:14
不过这句话好象说要用1.8以后的版本,我的是1.7的.
This documentation applies to Firefox and Mozilla 1.8 builds from August 30th or later,
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2005-01-26 16:14
Mozilla 1.7.5已经支持了。因为它用的是和Firefox1.0相同的Gecko。
如果你不存在向后兼容的问题,建议你使用新接口。
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2005-01-26 16:14
原来这个是新发布的消息,怪不得我没有发现~斑竹还是今天关注最新动态啊,呵呵.
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2005-01-26 16:14
在我前面的回复里面,纠正一个错误,我把LiveConnect 说成XPConnect了,现在最新的插件用XPConnect代替了原来老的LiveConnect ,在我下载的GECKO的SDK中的例子是LiveConnect ,所以不能用了,要重新移植
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
12楼#
发布于:2005-01-26 16:14
不过斑竹可能忽视了一个问题,其实XPConnect是基于C++的.我现在的插件就是用它文章中说的方法做的,已经不是C了.不知道我说的对不对.
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
13楼#
发布于:2005-01-26 16:14
我已经和你说了,基于XPConnect的靠传一个xpcom的方法已经过时了,其原因之一就是因为传的是一个C++对象,有很多兼容性的问题,比如一个gcc2.96编译的mozilla和gcc3.3编译的scriptable plugin放在一起是铁定不工作的。
仔细看http://www.mozilla.org/projects/plugins/
看上面哪个写着New,哪个写着deprecated
sam
sam
小狐狸
小狐狸
  • UID1799
  • 注册日期2005-01-06
  • 最后登录2005-03-01
  • 发帖数18
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
14楼#
发布于:2005-01-26 16:14
不好意思,也许我没有很好理解你的意思.
由于这个项目非常紧迫,也来不及仔细查看所有的信息了.

谢谢斑竹的回复.
上一页
游客

返回顶部