skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:9102回复:11

[求助]firefox插件移植到chrome,需要修改什么?

楼主#
更多 发布于:2011-06-07 15:33
用NPAPI开发的插件(参照npruntime这个例子),firefox下测试一切正常,放到chrome下不行,出现以下问题:
Unhandled exception at 0x01c43a87 in chrome.exe: 0xC0000005: Access violation reading location 0xcccccccc.
出错的地方是,函数NPN_InvokeDefault()里面的
NPNFuncs.invokeDefault(npp, obj, args, argCount, result);这个语句
麻烦大虾们看看,先谢了
skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2011-06-07 15:33
skylin_baiyi:用NPAPI开发的插件(参照npruntime这个例子),firefox下测试一切正常,放到chrome下不行,出现以下问题:
Unhandled exception at 0x01c43a87 in chrome.exe: 0xC0000005: Access violation reading location 0xcccccccc.
出错的地方是,函数NPN_InvokeDefault()里面的
NPNFuncs.invokeDefault(npp, obj, args, argCount, result);这个语句
麻烦大虾们看看,先谢了
回到原帖


NPAPI的相关文档,是说是通用的。不知道问题出在哪儿啊?有人做过这方面的吗?
msky
千年狐狸
千年狐狸
  • UID14649
  • 注册日期2006-09-21
  • 最后登录2023-04-03
  • 发帖数2959
  • 经验166枚
  • 威望0点
  • 贡献值12点
  • 好评度9点
  • 社区居民
2楼#
发布于:2011-06-07 15:33
呃,设么插件呢?应该是通用的吧,比如 flash 和wmp
wangerxiao
小狐狸
小狐狸
  • UID36492
  • 注册日期2011-06-15
  • 最后登录2011-06-16
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2011-06-07 15:33
你解决了吗
我也遇到同样的问题,你解决了吗
wangerxiao
小狐狸
小狐狸
  • UID36492
  • 注册日期2011-06-15
  • 最后登录2011-06-16
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2011-06-07 15:33
纠结了快两天,最终把这个函数注释掉,正常工作了,对此我只能表示,这是个神奇的世界。

NPN_InvokeDefault(m_pNPInstance, NPVARIANT_TO_OBJECT(barval), &arg, 1,&rval);
skylin_baiyi
小狐狸
小狐狸
  • UID36350
  • 注册日期2011-05-27
  • 最后登录2011-06-22
  • 发帖数7
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2011-06-07 15:33
wangerxiao:纠结了快两天,最终把这个函数注释掉,正常工作了,对此我只能表示,这是个神奇的世界。

NPN_InvokeDefault(m_pNPInstance, NPVARIANT_TO_OBJECT(barval), &arg, 1,&rval);
回到原帖


恩。我后来也只有采用这种方式了
xxlqcx
小狐狸
小狐狸
  • UID37477
  • 注册日期2011-10-02
  • 最后登录2013-12-30
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2011-06-07 15:33
我也下载并且编译了这个DLL ,在火狐上运行正常,chrome加载是出现错误
/************************************************************************************
0x01c3ebd4指令引用的0x00000000000内存。该内存不能为written
**********************************************************************************/
我试着注释掉NPN_InvokeDefault(m_pNPInstance, NPVARIANT_TO_OBJECT(barval), &arg, 1,&rval); 依旧是这个错误
而且我不会调试动态加载的DLL 求教

另外npsimple-win32的例子我这里没能编译成功
/*******************************************************************************************
1> 正在创建库 D:\extensionIE\extensionFF\Ciantic-npsimple-win32\Smartphone 2003 (ARMV4)\Debug\npsimple.lib 和对象 D:\extensionIE\extensionFF\Ciantic-npsimple-win32\Smartphone 2003 (ARMV4)\Debug\npsimple.exp
1>npsimple.obj : error LNK2019: 无法解析的外部符号 __security_cookie,该符号在函数 "bool __cdecl invoke(struct NPObject *,void *,struct _NPVariant const *,unsigned int,struct _NPVariant *)" (?invoke@@YA_NPAUNPObject@@PAXPBU_NPVariant@@IPAU2@@Z) 中被引用
1>npsimple.obj : error LNK2019: 无法解析的外部符号 __security_check_cookie,该符号在函数 "bool __cdecl invoke(struct NPObject *,void *,struct _NPVariant const *,unsigned int,struct _NPVariant *)" (?invoke@@YA_NPAUNPObject@@PAXPBU_NPVariant@@IPAU2@@Z) 中被引用
1>MSVCRTD.lib(gshandler.obj) : error LNK2001: 无法解析的外部符号 __security_check_cookie
1>D:\extensionIE\extensionFF\Ciantic-npsimple-win32\Smartphone 2003 (ARMV4)\Debug\npsimple.dll : fatal error LNK1120: 2 个无法解析的外部命令
1>生成日志保存在“file://d:\extensionIE\extensionFF\Ciantic-npsimple-win32\Smartphone 2003 (ARMV4)\Debug\BuildLog.htm”
1>npsimple - 4 个错误,0 个警告
**********************************************************************************************/

求教
xxlqcx
小狐狸
小狐狸
  • UID37477
  • 注册日期2011-10-02
  • 最后登录2013-12-30
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2011-06-07 15:33
跟踪到的出错源码是
bool NPN_Evaluate(NPP npp, NPObject* obj, NPString *script, NPVariant *result)
{
return NPNFuncs.evaluate(npp, obj, script, result);
}

注释掉也没用
真心求解
chengdu1113
小狐狸
小狐狸
  • UID37610
  • 注册日期2011-10-21
  • 最后登录2011-11-25
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2011-06-07 15:33
不是注释NPN_InvokeDefault而是注释掉NPN_Evaluate,例子可以了但是自己又编了一个其他浏览器都没有问题,firefox,opera,safari都可以加载插件,就是chorme不行,而且about:plugins中还有插件信息,谁能给个提示,多谢。调试npruntime的插件只能在浏览器加载插件之后,所以之前的行为都大不了断点,错误应该就是在初始化时候发生的。
chengdu1113
小狐狸
小狐狸
  • UID37610
  • 注册日期2011-10-21
  • 最后登录2011-11-25
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2011-06-07 15:33
skylin_baiyi

NPAPI的相关文档,是说是通用的。不知道问题出在哪儿啊?有人做过这方面的吗?
回到原帖

不是npapi通用而是npruntime通用,概念要清楚。最近在做这方面的东西,希望能互相学习一下。
chengdu1113
小狐狸
小狐狸
  • UID37610
  • 注册日期2011-10-21
  • 最后登录2011-11-25
  • 发帖数3
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2011-06-07 15:33
xxlqcx:跟踪到的出错源码是
bool NPN_Evaluate(NPP npp, NPObject* obj, NPString *script, NPVariant *result)
{
return NPNFuncs.evaluate(npp, obj, script, result);
}

注释掉也没用
真心求解
回到原帖

问一下 是如何追踪到的。
qinglonng
小狐狸
小狐狸
  • UID38546
  • 注册日期2012-03-27
  • 最后登录2012-03-28
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
11楼#
发布于:2011-06-07 15:33
在plugin.cpp里把
NPN_Evaluate(m_pNPInstance, doc, &str, NULL);

改成
NPVariant result;
NPN_Evaluate(m_pNPInstance, doc, &str, &result);
游客

返回顶部