文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>VS2008编译Firefox插件npruntime

VS2008编译Firefox插件npruntime

时间:2010-10-06  来源:eping

Compiling The npruntime Sample Plugin in Visual Studio

Eping

前言:对于初学FF插件开发的同学来说,只能看Mozilla Developer的官方文档,当然也不少中文博客可以参考,本文参考官方文档并加少许个人编译心得体会。原文链接:

https://developer.mozilla.org/en/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio

开发准备:装有VS的机器一台、安装Firefox3.0、或Firefox3.6目前最新版Firefox 4.0版本人测试没有通过,如果测试通过的欢迎与本人分享 mail:[email protected]

开发之旅:

1、使用VS2008创建Win32 Dll空项目nprt,在应用程序类型里选择DLL,附加选项中选中空项目。

2、项目名最好以np开头,否则当你最后生成的dll文件后,也将使用np开头。原因:Mozilla这么规定。

3、去http://mxr.mozilla.org/mozilla-central/source/modules/plugin/sdk/samples/把Mozilla官方提供的npruntime例子里的代码(.cpp .h .rc .def文件)下载下来。打开文件后点Raw file(右上角)即可拷贝源码。如图 1-1所示

                                                                              图 1-1

4、把下载下来的源代码添加到nprt项目中去。

np_entry.cpp npn_gate.cpp npp_gate.cpp plugin.cpp

plugin.h resource.h 还有资源文件nprt.rc

5、下载Gecko SDK

下载链接:https://developer.mozilla.org/en/Gecko_SDK

版本的选择很重要 Gecko 1.9 (Firefox 3.0) 这个版本的SDK才能编译本文所示代码。xulrunner-1.9.0.17.en-US.win32.sdk.zip 更高级的两个版本都不能编译通过。

6、 把Gecko SDK 头文件目录添加到nprt项目中。

Project Properties|(all configurations)|C++|General|

Additional Include Directories 中添加以下(注:应该先把.cpp .h添加到项目中,否则项目属性那里可以显示不出来C++这个选项)

C:\xulrunner-1.9.0.17\xulrunner-sdk\include

C:\xulrunner-1.9.0.17\xulrunner-sdk\include\plugin

C:\xulrunner-1.9.0.17\xulrunner-sdk\include\nspr

C:\xulrunner-1.9.0.17\xulrunner-sdk\include\java

7、添加预处理器定义

Project Properties|(all configurations)|C++|Preprocessor|

Preprocessor Definitions

添加内容:WIN32;_WINDOWS;XP_WIN32;MOZILLA_STRICT_API;XPCOM_GLUE;

XP_WIN;_X86_;NPSIMPLE_EXPORTS

8、禁用预编译头文件

Project Properties|(all configurations)|C++|

Precompiled headers|Create/Use precompiled header

不使用预编译头

9、定义函数导出文件 .def

Project Properties|(all configurations)|Linker|Input|

Module Definition File

如我们添加的 nprt.def

10、删除npp_gate.cpp文件里的NPP_GetJavaClass函数

11、在plugin.cpp 文件里的PluginWinProc函数中的DrawText改为DrawTextA,unicode编译原因。

12、编译。

13、编译成功后可以在debug目录找到nprt.dll,并把它拷贝到Mozilla Firefox安装目录plugins文件夹下。

14、打开firefox 在地址栏中输入 about:plugins 可以看到我们安装的plugins 如图1-2所示

                                                               图 1-2

15、下载npruntime例子里的test.html

http://mxr.mozilla.org/seamonkey/source/modules/plugin/samples/npruntime/test.html?raw=1

16、确保nprt项目中.rc文件和npp_gate.cpp中的mimetype类型跟test.html中的embed中的mimetype类型匹配。

17、用firebox打开test.html测试结果如下图1-3所示。

                                                             图 1-3

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载