Firefox插件开发(1)-万事开头难

介绍建立开发环境,一步步建立第一个例程。

什么是插件?

心血来潮,像做个firefox的插件开发。

弄了整整一天,终于有了模糊的概念。

firefox扩展应用分:Extension和PlugIn

以我的理解:Extension相当于一个可以执行Javascript的脚本;PlugIn相当于利用firefox的API接口的程序。所以,一个是本体的延伸;另外一个是独立的个体。

这里我是想学习Plugin。因为Javascript不会,感觉PlugIn更强大一些。

开发环境的建立

这里又一次感到了java的强大,好像可以直接使用一个叫netbeans的IDE+编译器+foxbeans插件,直接开始类似MFC的有向导的操作。我绕了个大弯子,才发现C/C++可能不能这么实现。这里也提醒大家一下。

我的目标是建立一个C\C++的集成开发环境。查了一堆资料,大多不靠谱,官方资料当然最可靠,感觉也有错误。下面是两个比较好一点的入门材料。

最需要阅读的是plugins API和使用入门。这是一个相当长的文档,如果看完所有的内容会花费大量的时间而且还会很晕,这里列一些重点供参考。

从这里http://developer.mozilla.org/en/docs/Gecko_SDK下载正确的版本SDK,并进行安装。说是安装,实际上就是解压缩到一个目录中,将SDK的路径加到环境变量path里面,比如我的路径D:\firefoxPlugin\xulrunner-sdk\bin。注意:为了方便,我们常常用这个目录作为工作目录,建立的位置要注意下。(版本1.9.2不行,缺少头文件,可以用1.9.1)

可以用VC进行开发,版本支持好像挺多的。我用了VC6。其他版本稍有不同,见上边的官方文档。建立一个插件的工程步骤如下:

  1. 在VC6中新建一个Win32 Dynamic-Link Library工程,取名“nprt”。注意:建议工程以小写np开头,并且长度不超过8个字符,这样以后就会省事很多。
  2. 下一步,选择“An empty DLL project”,然后“Finish”。
  3. 打开Project Settings,转到Project Properties|(all configurations)|C++|标签页,进行一些设置:
  • General| Preprocessor Definitions 中最后面添加 :  ,XP_WIN32,MOZILLA_STRICT_API,XPCOM_GLUE,XP_WIN,_X86_
  • Preprocessor |Additional Include Directories下面添加XULRunner SDKinclude路径,可以是绝对路径,也可以是相对路径,看你当初怎么解压的了。例如:(example : C:\xulrunner-sdk\sdk\include)
  • Precompiled headers|Create/Use precompiled header中关闭预编译头文件:Not using precompiled headers。

OK,关闭Project Settings对话框。到此,设置完毕。

从例程开始

下载地址:http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/

下载方式:试了下SVN下不了,只能手动了,点击到项目中的每个文件,页面右上方出现一个方框,里面有CVS Log,CVS Blame,CVS Graph,Diff file,Raw file。选择Raw file然后另存为。

文件加到工程中编译。

OK!

Leave a comment

0 Comments.

Leave a Reply


[ Ctrl + Enter ]