NPAPI火狐插件VS2013开发示例
NPAPI火狐插件VS2013开发示例
下面是我根据网上开发示例自己做的一个demo,并提供代码下载。
开发环境
Windows 8.1 x64 Visual studio 2013
准备工作
首先需要从官网下载火狐源码(也可以下载其它版本),里面有开发插件所需要的头文件。
下载后解压,并找到sdk。
注意不同版本,位置不同。
其次要确保你的Visual Studio 2013 安装了VC++
另:我的网盘下载地址:
Firefox sdk : http://pan.baidu.com/s/1gdhAmrD
Demo源码:http://pan.baidu.com/s/1kTrByC3
开始示例
- 打开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开发示例的更多相关文章
- IDEA插件(Android Studio插件)开发示例代码及bug解决
IDEA插件(Android Studio插件)开发示例代码及bug解决 代码在actionPerformed方法中,有个AnActionEvent e 插件开发就是要求我们复写上述的这个方法即可,在 ...
- openfire :openfire 不同类型插件的开发示例
新建一个自己的Javaproject工程,添加的jar包如下: 将jasper-compiler.jar.jasper-runtime.jar.servlet.jar添加到新建的工程中.如果没有jar ...
- WPF常用控件样式( 内含一简单插件式开发示例)
最近离职,离职前面的一份外派然后又外包的工作,总觉得不妥,之后外派的办个入职手续都一再失约,干脆推了.恰逢清明时节,暴雨纷纷,于是打算先休息休息调整下状态,工作的事情还是谨慎点的好,免得影响心情.话说 ...
- 关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态
关于火狐浏览器在开发调试过程中,出现javascript:void(0)的状态 由于火狐浏览器没有安装 Adobe Flash Player 19 NPAPI这个插件 安装好了之后就可以直接运行了
- [Liferay6.2]Liferay入门级portlet开发示例
什么是Portlet 来自百度百科(http://baike.baidu.com/view/58961.htm)的定义如下: portlet是基于java的web组件,处理request并产生动态内容 ...
- jQuery插件的开发
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- 插件化开发—动态加载技术加载已安装和未安装的apk
首先引入一个概念,动态加载技术是什么?为什么要引入动态加载?它有什么好处呢?首先要明白这几个问题,我们先从 应用程序入手,大家都知道在Android App中,一个应用程序dex文件的方法数最大不能超 ...
- VBA Editor Addins --> VBE插件模板开发众筹
https://www.cnblogs.com/Charltsing/p/VBEAddins.html QQ:564955427 8月8日测试版功能说明 1.VBE菜单的创建 2.toolwindow ...
- 也来学学插件式开发续-利用MEF
前面一个博客:也来学学插件式开发中很多朋友留言说可以用MEF来实现.于是我就试着用MEF实现了一下. 步骤和上一篇差不多,只是加载插件的方式有所不同.这只是一个自己的示例程序,肯定有很多不足之处,欢迎 ...
随机推荐
- android 集成百度地图
一.下载百度地图为我们提供的所有DEMO. 在这里边我选的是一键下载. 二.下载后有两个项目一个是用于eclipse.另一个是android studio.我选的是android studio. 我用 ...
- android dom方式创建xml
http://blog.csdn.net/nxh_love/article/details/7085174 在android dom 解析xml方式文章中,简单介绍了dom解析xml的应用.今天在原文 ...
- hdu 七夕节
#include <cstdio> #include <cstring> #include <algorithm> #define maxn 500000 usin ...
- python的工作记录B
这次很强了.就差最后一步,判断一下SVN的版本是否是真的库里的. #!/usr/bin/env python # -*- coding: utf-8 -*- import os,sys,command ...
- Unity中的关节
关节组件一共分为5大类,它们分别是链条关节.固定关节.弹簧关节.角色关节和可配置关节.链条关节(Hinge Joint):将两个物体以链条的形式绑在一起,当力量过大超过链条的固定力矩时,两个物体就会产 ...
- c#进程间通信(Inter-Process Communication)
原文:c#进程间通信(Inter-Process Communication) c#进程间通信(IPC, Inter-Process Communication) 接收端: using System; ...
- ASP.NET WEB API回发到客户端消息体的格式化
首先基于SOA的消息通信基本都是按照一个统一的协议规范进行交互,那么必须定义消息体.不同的交互结构设计了不同的消息体. 业界统一使用的SOAP是一种规范的XML消息内容.例如在WCF中返回的结果. 随 ...
- libeXosip2(3) -- SIP messages and call control API
SIP messages and call control API The SIP messages and call control API. More... Modules eXosip2 INV ...
- spring加载properties配置文件
public static void main(String[] args){ String path="E:/workspace/bocMarketData/src/config/P ...
- 用c++编写一个不能被继承的类(但是可以在类外部定义该类的对象)
据我们知道,我们只要把类的构造函数和析构函数定义为private类型,那么就不能够在外部建立给类的对象,也就不能以给类为基类进行继承,因为如果继承,建立对象的时候将要调用基类的构造函数,但是因为为pr ...