您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页firefox NPAPI 插件开发(c++)(一)

firefox NPAPI 插件开发(c++)(一)

来源:汇智旅游网

1.创建1Win32 控制台应用程序,应用程序类型为DLL,附加选项为空项目

2.项目-》右键-》配置属性-》常规-》字符集-》使用多字节字符集

3.复制sdk\samples\npruntime文件夹下的np_entry.cpp,npn_gate.cpp,npp_gate.cpp

其中np_entry.cpp

添加#include<stddef.h>

因为使用到offsetof

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"

如果报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
 

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:///zhouyuqwert/article/details/7387516
我的Firefox插件开发之旅(5)——编译和测试第一个Plugin例子:npruntime
http://www.cppblog.com/epubcn/archive/2008/11/11/66612.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务