firefox NPAPI 插件开发(c++)(一)
2017-01-17 21:33
369 查看
1.创建1Win32 控制台应用程序,应用程序类型为DLL,附加选项为空项目
2.项目-》右键-》配置属性-》常规-》字符集-》使用多字节字符集
3.复制sdk\samples\npruntime文件夹下的np_entry.cpp,npn_gate.cpp,npp_gate.cpp
到nptest项目目录下,并添加到项目中
其中np_entry.cpp
添加#include<stddef.h>
因为使用到offsetof
这时候编译一下,会报一堆错,同时项目属性里会出现c/c++选项
4.项目-》右键-》配置属性-》c/c++-》常规-》附加包含目录
添加
E:\firefox plugin\base\public
E:\firefox plugin\sdk\samples\include
也可以用相对目录,如果firefox plugin和nptest.vcproj是同一目录下,则路径为
firefox plugin\base\public
firefox plugin\sdk\samples\include
5.项目-》右键-》配置属性-》c/c++-》预处理器-》预处理器定义添加
XP_WIN
_X86_
6.新建一nptest.def文件
编辑nptest.def为
LIBRARY "nptest"
EXPORTS
NP_GetEntryPoints @1
NP_Initialize @2
NP_Shutdown @3
7.添加一资源Version,保存
在解决方案中右键nptest.rc,选择查看代码
BLOCK "080404b0" 改为
BLOCK "040904e4"
同时添加一value
VALUE "MIMEType", "application/test-plugin"
8.复制sdk\samples\npruntime文件夹下的plugin.h,plugin.cpp到nptest项目目录下,并添加到项目中,编译plugin.cpp如果报printf找不到,就把#include <stdio.h>添上吧如果报error C3861: “SubclassWindow”: 找不到标识符,需要在plugin.cpp文件添加#include "stdafx.h",并且在#ifdef XP_WIN#include <windows.h>#include <windowsx.h>#endif之前,即最开始
9.编译生成整个项目
10.编辑注册表
HKEY_CURRENT_USER\Software\MozillaPlugins下
新建子项@mozilla.com.cn/test
并新建字符串值“Path”设值为E:\hbj\test3\nptest\Debug\nptest.dll
打开火狐浏览器 在地址栏输入“about:plugins” 如果在plugin列表中有本例的npdemo.dll及说明我们的plugin示例已经成功完成,
PS:
1.如果没有,请再次查看BLOCK 的值是否是040904e4(仅仅是我遇到的)
2. 输入about:config设置plugin.expose_full_path 设为 true,可显示dll全路径
11.测试页面
<HTML>
<HEAD>
</HEAD>
<BODY>
<embed type="application/test-plugin">
</BODY>
</HTML>
12.总结
实现firefox查找注册表,再找到dll,加载,通过NP_GetEntryPoints进入c++代码
ie的 activex也是要通过注册表或者路径找到dll加载,只不过通过其他入口进入c++代码
参考:
NPAPI开发详解,Windows版 http://mozilla.com.cn/post/21666/
NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用 http://blog.csdn.net/zhouyuqwert/article/details/7387516
我的Firefox插件开发之旅(5)——编译和测试第一个Plugin例子:npruntime http://www.cppblog.com/epubcn/archive/2008/11/11/66612.html
2.项目-》右键-》配置属性-》常规-》字符集-》使用多字节字符集
3.复制sdk\samples\npruntime文件夹下的np_entry.cpp,npn_gate.cpp,npp_gate.cpp
到nptest项目目录下,并添加到项目中
其中np_entry.cpp
添加#include<stddef.h>
因为使用到offsetof
这时候编译一下,会报一堆错,同时项目属性里会出现c/c++选项
4.项目-》右键-》配置属性-》c/c++-》常规-》附加包含目录
添加
E:\firefox plugin\base\public
E:\firefox plugin\sdk\samples\include
也可以用相对目录,如果firefox plugin和nptest.vcproj是同一目录下,则路径为
firefox plugin\base\public
firefox plugin\sdk\samples\include
5.项目-》右键-》配置属性-》c/c++-》预处理器-》预处理器定义添加
XP_WIN
_X86_
6.新建一nptest.def文件
编辑nptest.def为
LIBRARY "nptest"
EXPORTS
NP_GetEntryPoints @1
NP_Initialize @2
NP_Shutdown @3
7.添加一资源Version,保存
在解决方案中右键nptest.rc,选择查看代码
BLOCK "080404b0" 改为
BLOCK "040904e4"
同时添加一value
VALUE "MIMEType", "application/test-plugin"
8.复制sdk\samples\npruntime文件夹下的plugin.h,plugin.cpp到nptest项目目录下,并添加到项目中,编译plugin.cpp如果报printf找不到,就把#include <stdio.h>添上吧如果报error C3861: “SubclassWindow”: 找不到标识符,需要在plugin.cpp文件添加#include "stdafx.h",并且在#ifdef XP_WIN#include <windows.h>#include <windowsx.h>#endif之前,即最开始
9.编译生成整个项目
10.编辑注册表
HKEY_CURRENT_USER\Software\MozillaPlugins下
新建子项@mozilla.com.cn/test
并新建字符串值“Path”设值为E:\hbj\test3\nptest\Debug\nptest.dll
打开火狐浏览器 在地址栏输入“about:plugins” 如果在plugin列表中有本例的npdemo.dll及说明我们的plugin示例已经成功完成,
PS:
1.如果没有,请再次查看BLOCK 的值是否是040904e4(仅仅是我遇到的)
2. 输入about:config设置plugin.expose_full_path 设为 true,可显示dll全路径
11.测试页面
<HTML>
<HEAD>
</HEAD>
<BODY>
<embed type="application/test-plugin">
</BODY>
</HTML>
12.总结
实现firefox查找注册表,再找到dll,加载,通过NP_GetEntryPoints进入c++代码
ie的 activex也是要通过注册表或者路径找到dll加载,只不过通过其他入口进入c++代码
参考:
NPAPI开发详解,Windows版 http://mozilla.com.cn/post/21666/
NPAPI——实现非IE浏览器的类似ActiveX的本地程序(插件)调用 http://blog.csdn.net/zhouyuqwert/article/details/7387516
我的Firefox插件开发之旅(5)——编译和测试第一个Plugin例子:npruntime http://www.cppblog.com/epubcn/archive/2008/11/11/66612.html
相关文章推荐
- firefox NPAPI 插件开发(c++)(二)-为插件添加和脚本交互的能力(转载)
- 【Android浏览器插件开发准备工作之NPAPI】使用Visual Studio 2008 运行Firefox浏览器插件实例npruntime
- FireFox插件开发--弃用NPAPI
- 我的Firefox插件开发之旅(4)——XULRunner的一个例子
- firefox顶级网页开发调试插件-firebug
- Firefox插件开发详解--序
- WEB前端开发必不可少的3大firefox插件
- ie与FireFox下扩展开发插件收集
- 我的Firefox插件开发之旅(2)——XUL是什么?
- (转贴的)如何开发Firefox插件
- IE与FireFox下扩展开发插件收集zz
- IE与FireFox下扩展开发插件收藏
- FireFox开发插件Web Developer
- Firefox插件/扩展开发之Hello World无废话版
- PDF教程 - 如何开发Firefox插件
- 安全专家开发Firefox插件 打击虚假网站
- firefox下几个实用的免费开发插件
- firefox下几个实用的免费开发插件
- Yahoo发布FireFox网站开发插件YSlow
- Web前端开发的Firefox插件