NPAPI火狐插件VS2013开发示例

下面是我根据网上开发示例自己做的一个demo,并提供代码下载。

开发环境

Windows 8.1 x64 Visual studio 2013

准备工作

首先需要从官网下载火狐源码(也可以下载其它版本),里面有开发插件所需要的头文件。

官网下载地址:,http://download.cdn.mozilla.net/pub/mozilla.org/firefox/releases/33.0/source/firefox-33.0.source.tar.bz2

下载后解压,并找到sdk。

注意不同版本,位置不同。

其次要确保你的Visual Studio 2013 安装了VC++

另:我的网盘下载地址:

Firefox sdk : http://pan.baidu.com/s/1gdhAmrD

Demo源码:http://pan.baidu.com/s/1kTrByC3

开始示例

  1. 打开VS2013 文件à 新建项目à Win32项目

    找到np_entry.cpp,npn_gate.cpp,npp_gate.cpp

    将这三个文件拷贝到解决方案根目录下。

    添加后

    改成

    然后,在项目右键添加C++类

    项目右键添加新建项

    添加内容:

LIBRARY "nptest"

EXPORTS

NP_GetEntryPoints @1

NP_Initialize @2

NP_Shutdown @3

到此,插件做完了。

编译成功。如果遇到问题,请注意配置及头文件是否添加正确。

写入注册表:

HKEY_CURRENT_USER\Software\MozillaPlugins\@pyc.com/nptest;version=1.0

添加path指向生成的dll

在火狐下输入:about:plugins 刷新即可看到。

小结

本文档仅记录开发过程,以便自己以后查阅。如有错误欢迎指正。因本人不熟悉VC++,所以也说不出个123,不过我有一颗热忱的心,爱学习。我认为语言都是相同的,只要功夫深,铁棒也能磨成针。 NPAPI基本常识请参考我的另一篇文章:http://www.cnblogs.com/lipanpan/p/4178754.html

NPAPI火狐插件VS2013开发示例的更多相关文章

  1. IDEA插件(Android Studio插件)开发示例代码及bug解决

    IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...

  2. openfire :openfire 不同类型插件的开发示例

    新建一个自己的Javaproject工程,添加的jar包如下: 将jasper-compiler.jar.jasper-runtime.jar.servlet.jar添加到新建的工程中.如果没有jar ...

  3. WPF常用控件样式( 内含一简单插件式开发示例)

    最近离职,离职前面的一份外派然后又外包的工作,总觉得不妥,之后外派的办个入职手续都一再失约,干脆推了.恰逢清明时节,暴雨纷纷,于是打算先休息休息调整下状态,工作的事情还是谨慎点的好,免得影响心情.话说 ...

  4. 关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态

    关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了

  5. [Liferay6.2]Liferay入门级portlet开发示例

    什么是Portlet 来自百度百科(http://baike.baidu.com/view/58961.htm)的定义如下: portlet是基于java的web组件,处理request并产生动态内容 ...

  6. jQuery插件的开发

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  7. 插件化开发—动态加载技术加载已安装和未安装的apk

    首先引入一个概念,动态加载技术是什么?为什么要引入动态加载?它有什么好处呢?首先要明白这几个问题,我们先从 应用程序入手,大家都知道在Android App中,一个应用程序dex文件的方法数最大不能超 ...

  8. VBA Editor Addins --> VBE插件模板开发众筹

    https://www.cnblogs.com/Charltsing/p/VBEAddins.html QQ:564955427 8月8日测试版功能说明 1.VBE菜单的创建 2.toolwindow ...

  9. 也来学学插件式开发续-利用MEF

    前面一个博客:也来学学插件式开发中很多朋友留言说可以用MEF来实现.于是我就试着用MEF实现了一下. 步骤和上一篇差不多,只是加载插件的方式有所不同.这只是一个自己的示例程序,肯定有很多不足之处,欢迎 ...

随机推荐

  1. [转]IBInspectable / IBDesignable

    原文:http://www.cocoachina.com/ios/20150227/11202.html 无论陈词滥调多少次,比起一个需要我们记住并且输入什么的界面来说,如果替换成我们能够看见并可控制 ...

  2. 阅读记录:Learning multiple layers of representation(杂乱笔记)

    典型的浅层学习结构: 传统隐马尔可夫模型(HMM).条件随机场 (CRFs).最大熵模型(Maxent).支持向量机(SVM).核回归及仅含单隐层的多层感知器(MLP)等. 局部表示,分布式表示和稀疏 ...

  3. 对拍 For Linux

    #!/bin/sh g++ -g gene.cpp -o gene g++ -g a.cpp -o a g++ -g b.cpp -o b while true; do  ./gene > in ...

  4. iotop使用

    介绍 Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦. iotop 是一个用来监视磁盘 I/O 使用状况 ...

  5. Spring 源码解读 推荐流程

    Spring源代码解析(一):IOC容器:http://www.javaeye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.ja ...

  6. poj 2226 Muddy Fields(最小点覆盖+巧妙构图)

      Description Rain has pummeled the cows' field, a rectangular grid of R rows and C columns (1 <= ...

  7. Git冲突解决方案

    Git冲突解决方案 1.  在代码提交时,先更新,若有冲突.先解决冲突.若提交之后在review时才发现无法合并代码时有冲突,需要abandon此次提交的代码. 2.  解决冲突的基本做法,保存本地代 ...

  8. THINKPHP之控制器

    如何新增控制器? 在Lib/Action中新增一个控制器:ProductAction.class.php: <?php class ProductAction extends Action{   ...

  9. 正则表达式获取URL参数

    使用到的正则表达式: [^\?&]?参数名=[^&]+ document.location.getURLPara = function (name) { var reg = new R ...

  10. [转]Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    Spring Boot——2分钟构建spring web mvc REST风格HelloWorld http://projects.spring.io/spring-boot/ http://spri ...