阅读:9102回复:11
[求助]firefox插件移植到chrome,需要修改什么?
用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);这个语句 麻烦大虾们看看,先谢了 |
|
1楼#
发布于:2011-06-07 15:33
skylin_baiyi:用NPAPI开发的插件(参照npruntime这个例子),firefox下测试一切正常,放到chrome下不行,出现以下问题: NPAPI的相关文档,是说是通用的。不知道问题出在哪儿啊?有人做过这方面的吗? |
|
2楼#
发布于:2011-06-07 15:33
呃,设么插件呢?应该是通用的吧,比如 flash 和wmp
|
|
3楼#
发布于:2011-06-07 15:33
你解决了吗
我也遇到同样的问题,你解决了吗 |
|
4楼#
发布于:2011-06-07 15:33
纠结了快两天,最终把这个函数注释掉,正常工作了,对此我只能表示,这是个神奇的世界。
NPN_InvokeDefault(m_pNPInstance, NPVARIANT_TO_OBJECT(barval), &arg, 1,&rval); |
|
5楼#
发布于:2011-06-07 15:33
wangerxiao:纠结了快两天,最终把这个函数注释掉,正常工作了,对此我只能表示,这是个神奇的世界。 恩。我后来也只有采用这种方式了 |
|
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 个警告 **********************************************************************************************/ 求教 |
|
7楼#
发布于:2011-06-07 15:33
跟踪到的出错源码是
bool NPN_Evaluate(NPP npp, NPObject* obj, NPString *script, NPVariant *result) { return NPNFuncs.evaluate(npp, obj, script, result); } 注释掉也没用 真心求解 |
|
8楼#
发布于:2011-06-07 15:33
不是注释NPN_InvokeDefault而是注释掉NPN_Evaluate,例子可以了但是自己又编了一个其他浏览器都没有问题,firefox,opera,safari都可以加载插件,就是chorme不行,而且about:plugins中还有插件信息,谁能给个提示,多谢。调试npruntime的插件只能在浏览器加载插件之后,所以之前的行为都大不了断点,错误应该就是在初始化时候发生的。
|
|
9楼#
发布于:2011-06-07 15:33
skylin_baiyi: 不是npapi通用而是npruntime通用,概念要清楚。最近在做这方面的东西,希望能互相学习一下。 |
|
10楼#
发布于:2011-06-07 15:33
|
|
11楼#
发布于:2011-06-07 15:33
在plugin.cpp里把
NPN_Evaluate(m_pNPInstance, doc, &str, NULL); 改成 NPVariant result; NPN_Evaluate(m_pNPInstance, doc, &str, &result); |
|