读书人

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

发布时间: 2012-06-20 20:37:21 作者: rapoo

编译和测试火狐第一个插件
转载请标明是引用于 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 第一个报错

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


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

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

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

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

我猜想它是不含这个的。

那么就从工程文件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的区别到底有多大。

读书人网 >编程

热点推荐