编译和测试火狐第一个插件

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

一.编译火狐插件:

1.环境搭建:

下载Gecko SDK.。链接地址为:https://developer.mozilla.org/en/gecko_sdk,注意你火狐的版本不能低于Gecko SDK的版本。

2、例子测试

下载火狐插件开发官方例子。链接地址为:

https://developer.mozilla.org/en/Plugins/Samples_and_Test_Cases

该例子包含在unix、mac、windows等几种平开发的例子,总共有4个windows平台不同的例子。

且下载包解压后的 文件夹 GeckoPluginSDK-samples\Win32SDK\gecko-sdk已经含有SDK了。

编译方法有两种

2、1 重新建工程编译

    参考: https://developer.mozilla.org/En/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio

2、2  在原工程基础上编译

我们用VS2005打开Windows平台工程文件AllWin32Samples.dsw:

解决方案是这样:

2、2、1 第一个报错

 

其中标有红色框的是编译不通过的工程,报错信息为:

1>------ 已启动生成: 项目: npsimple, 配置: Debug Win32 ------
1>Running the XPIDL compiler and linker for nsISimplePlugin
1>FAILED: get_file_length: No such file or directory
1>Project : error PRJ0019: 工具从"Running the XPIDL compiler and linker for nsISimplePlugin"
1>生成日志保存在“file://c:\Documents and Settings\Administrator\桌面\GeckoPluginSDK-samples\Win32SDK\sdk\samples\simple\Debug\BuildLog.htm”
1>npsimple - 1 个错误,0 个警告
========== 生成: 0 已成功, 1 已失败, 0 最新, 0 已跳过 ==========


 

对我来说这个报错重来没见过,网上搜索也没找到原因。因为之前做ATL与COM开发都是用VCMDIL工具来编译的,现在npsimple这个工程是什么来编译的呢?

我把它与ATL工程进行了比较,发现它的解决方案属性里没有MIDL这个属性项:

由于微软件的MIDL属性页有无是根据工程文件是否有以下节点来判断的:

<Tool
      Name="VCMIDLTool"

我猜想它是不含这个的。

那么就从工程文件npsimple.vcproj分析入手吧。

npsimple.vcproj中找到了以下:

 

从编译信息看,已经运行了  Running the XPIDL compiler and linker for nsISimplePlugin,

那么此报错肯定和xpidl.exe有关系,按着路径找到了此文件:

单独运行也是出错:

很快就在CSDN一博客(http://blog.csdn.net/chinesejimmy/article/details/1634075)上找到了答案:

 这个SDK里还需要两个dll文件,下载wintools.zip,从buildtools/windows/bin/x86里拷贝libIDL-0.6.dll、glib-1.2.dll到xulrunner/gecko-sdk/bin下。

2、2、2  第二个报错

这是由于XPIDL.exe编译器不支持源文件的路径中有空格的原因。解决这个问题后,

再编译看看吧!^-^ 通过了!

 

二、测试例子插件

(1)由于我下的SDK版本是1.8 的,所以去下个FireFox 2.0的浏览器并安装。

(2)到输出目录下将四个工程得到的四个DLL文件:npwinless.dll、npbasic.dll、npscriptable.dll、npsimple.dll复制到FF安装目录的plugins目录下,

          例如:C:\Program Files\Mozilla Firefox\plugins\

(3)如果此时FF开着也没关系,不用关(这点很不错)。在地址栏键入about:plugins,看FF认出了我们的插件;

 

 

(4) 在FF中打开四个工程对应的test.html ,随便点一下页面上的按钮,看看简单的交互行为。

 

 

 

OK,第一个例子还算顺利,比想象中的要顺利。下面就该研究一下代码了,看看FF的插件和ActiveX的区别到底有多大。

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值