请问在如何使用XulRunner SDK 开发firefox(Windows版)的插件

fly4free 2014-12-25 02:32:01
搜索 xulrunner plugin 倒是能搜出来挺多结果。
最近一直在搜索教程,但各种教程,包括官网的教程的细节(如 附加头文件目录的设置)都各有不同。
我一开始下载的是 xulrunner 34.0.5 版本的sdk,不过在教程提到的链接下载的 sample项目 npruntime,编译不过去。
因为有些头文件,在这个sdk里不存在。

后来找到一个带了配套sdk版本的教程(使用firefox-4.0.1.source里modules\plugin目录下的文件),最后编译成功。可是我把它放进 mozilla firefox ( 34.0.5 版本离线安装) 中的plugins目录下后 查看插件信息(about:plugins),没效果。(plugins目录安装后不存在,我现建立的。),这个教程提到了注册表信息,可是关键的根键没有,我只好在Mozilla下建立一个Plugins子键,然后建立了“@whuiss.com/npTest” 这样的子键指定了插件dll的Path值,也无效果。我不明白为什么有的教程没有提到这个注册表信息。

我就怀疑,是不是当前浏览器版本太新了,导致不生效,我又在新下的 firefox-34.0.5.source 里搜索 npruntime,倒是搜索出 npruntime.h文件,在 mozilla-release\dom\plugins\base 下,一看就没啥关系啊,或者我不知道有什么可用的关系。而这个版本目录框架却没有了modules\plugin 目录。。

看官网MDN内容,没像chrome似的要封杀npapi,哪位大神指导一下,如何使用最新的sdk开发plugins?
如果所使用的sdk版本与mozilla firefox版本有什么关系的话,能把关键的地方告知的话万分感谢,因为我也不知道客户实际上使用的是哪个版本。
...全文
731 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly4free 2015-08-28
  • 打赏
  • 举报
回复
引用 3 楼 firebolt009 的回复:
前6个link error是因为你编译的是debug版本,而你链接的是xulrunner sdk的release版本所致,解决的方法如下(二选一): 1、在你的debug Preprocessor中设置_ITERATOR_DEBUG_LEVEL = 0即可 2、使用release编译,如果你想调试,将优化选项disable即可 后3个link error应该是因为你使用的链接库的问题,解决的方法是: 不应该使用xpcomglue.lib,而是xpcomglue_s.lib
根据的第一个方法,再加上自己摸索出来要引用若干 .lib文件,是编译过去了。
firebolt 2015-06-18
  • 打赏
  • 举报
回复
前6个link error是因为你编译的是debug版本,而你链接的是xulrunner sdk的release版本所致,解决的方法如下(二选一): 1、在你的debug Preprocessor中设置_ITERATOR_DEBUG_LEVEL = 0即可 2、使用release编译,如果你想调试,将优化选项disable即可 后3个link error应该是因为你使用的链接库的问题,解决的方法是: 不应该使用xpcomglue.lib,而是xpcomglue_s.lib
fly4free 2015-03-03
  • 打赏
  • 举报
回复
这个问题还没解决。 但是在firefox源码里找到一个 nsSample ,位置: firefox-34.0.5.source\mozilla-release\xpcom\sample 我使用 pyxpidl命令(header.py, typelib.py命令)在python 2.7.9环境下生成了相关代码文件。 然后我使用了xulrunner sdk 34.0.5,里面的头文件与库文件, 利用这些代码文件与库目录,我建立了VS2010的Win32 Dll工程,没有自定义任何 预处理器 项目, 导入库“mozalloc.lib xpcomglue.lib”,因为没有 xpcom.lib,我也不知道该用哪个,但是这种设置链接不过去。 错误提示:

1>xpcomglue.lib(nsMemory.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>xpcomglue.lib(nsXPCOMGlue.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>xpcomglue.lib(nsStringAPI.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>xpcomglue.lib(FileUtils.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>xpcomglue.lib(nsCRTGlue.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>xpcomglue.lib(nsTArray.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(nsSample.obj 中)
1>nsSample.obj : error LNK2001: 无法解析的外部符号 "public: virtual enum tag_nsresult __thiscall GenericClassInfo::QueryInterface(struct nsID const &,void * *)" (?QueryInterface@GenericClassInfo@@UAE?AW4tag_nsresult@@ABUnsID@@PAPAX@Z)
1>nsSample.obj : error LNK2001: 无法解析的外部符号 "public: virtual unsigned int __thiscall GenericClassInfo::AddRef(void)" (?AddRef@GenericClassInfo@@UAEIXZ)
1>nsSample.obj : error LNK2001: 无法解析的外部符号 "public: virtual unsigned int __thiscall GenericClassInfo::Release(void)" (?Release@GenericClassInfo@@UAEIXZ)
(... 略)
(我的感觉是 XPCOM 变化如此之快,试了好几个版本我都没有编译成功,即使编译成功也没应用成功过。。 目前网上的教程都不适用当前的源码版本……头大啊)
Cheris2014 2014-12-26
  • 打赏
  • 举报
回复
等大神。。。
内容概要:本文提出了一种基于高保真电磁暂态仿真的智能电网虚假数据注入攻击(FDIA)数据集构建与影响分析方法,依托PSCAD与MATLAB联合仿真平台,构建IEEE标准测试系统(如9节点或39节点系统)的精细化电磁暂态模型,精确模拟电网在正常运行及遭受FDIA下的动态响应过程,采集高精度、高时间分辨率的电压、电流、功率等电气量时序数据,生成具有强物理约束性和可复现性的攻击数据集。研究进一步结合现代状态估计理论、残差检测机制与机器学习分类算法,对FDIA的隐蔽性特征、攻击传播路径、系统关键变量偏移程度及暂态稳定性影响进行系统性量化评估,旨在为智能电网安全防护体系的设计、入侵检测模型的训练与攻防策略的有效性验证提供高可信度的数据基础与理论支撑。; 适合人群:面向电力系统自动化、能源互联网安全、工业控制系统安全等方向的研究生、科研人员及工程技术人员,要求具备电力系统分析、状态估计基础、MATLAB/PSCAD联合仿真能力以及基本的网络安全背景知识。; 使用场景及目标:① 复现和验证主流FDIA相关学术论文中的攻击模型与检测算法;② 构建符合实际物理规律、可用于训练深度学习或机器学习驱动的入侵检测系统(IDS)的真实攻击数据集;③ 深入探究虚假数据注入对电网暂态稳定性、继电保护动作逻辑、频率调节等关键功能的影响机理。; 阅读建议:本资源以高保真仿真为核心,强调数据生成的真实性与实验可重复性,读者应重点关注PSCAD与MATLAB之间的数据交互机制、攻击向量的设计原则与注入方式、以及多维度影响评估指标体系的构建方法,建议结合所提供的仿真模型与代码进行动手实践与结果验证。
内容概要:本文系统阐述了基于格子Boltzmann方法(Lattice Boltzmann Method, LBM)对二维通道内多孔介质流动进行数值模拟的理论体系、Matlab代码实现流程及结果验证方法。深入剖析了LBM在处理复杂流体系统尤其是不规则几何结构多孔介质流动中的独特优势,详细介绍了模型构建过程、边界条件设定、碰撞与传播环节的算法实现机制,并通过Matlab编程完成仿真运算,实现了对速度场、压力场等关键物理量的可视化分析与精度验证,确保模拟结果具备良好的准确性与可靠性。; 适合人群:具备流体力学基础知识和一定Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事多孔介质流动、计算流体力学(CFD)或LBM方法研究的相关领域研究人员。; 使用场景及目标:①掌握格子Boltzmann方法的核心原理及其在多孔介质流动模拟中的具体应用;②学习利用Matlab实现LBM算法并开展科学计算与结果可视化的方法;③为相关科研项目、学术论文复现或实际工程仿真提供可复用的代码框架与技术实施路径。; 阅读建议:建议读者结合流体力学与数值计算相关背景知识,逐步理解算法推导过程,动手运行并调试所提供的Matlab代码,通过调整参数或几何模型加深对LBM方法灵活性与适用性的认识,同时鼓励将该方法拓展至三维流动或多物理场耦合问题的研究中。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧