首页 > 代码库 > NPAPI 随笔记一、 在chrome运行 npruntime demo
NPAPI 随笔记一、 在chrome运行 npruntime demo
在chrome运行 npruntime demo,codeproject上的demo 是用于firefox上的,在chrome上使用得修改部分代码。
必要库:windows platform sdk 和 NPAPI SDK
在codeproject下载 npruntime的demo。
编译时
缺少头文件npfunctions.h于是找了NPAPI SDK.
未包含 windows.h于是include一下
NP_GetMIMEDescription 方法定义与SDK有冲突
char * NP_GetMIMEDescription(){ return NPP_GetMIMEDescription();}
修改为
const char * NP_GetMIMEDescription(){ return NPP_GetMIMEDescription();}
编译成功,后调试时,发现,插件加载失败。
经过多方查找资料,修改了以下部分代码终于成功了。
修改代码
NP_GetEntryPoints方法里面的
if(pFuncs->size < sizeof(NPPluginFuncs)) return NPERR_INVALID_FUNCTABLE_ERROR;
追踪发现Chrome 浏览器传递过来的pFuncs->size为80和实际定义的NPPluginFuncs的大小为84 所以严重不通过。注释屏蔽!
NP_Initialize方法里面的
if(pFuncs->size < sizeof(NPNetscapeFuncs)) return NPERR_INVALID_FUNCTABLE_ERROR;
追踪发现Chrome 浏览器传递过来的pFuncs->size和实际定义的NPNetscapeFuncs的大小不等所以严重不通过。注释屏蔽!
CPlugin构造函数内
NPN_InvokeDefault(m_pNPInstance, NPVARIANT_TO_OBJECT(barval), &arg, 1, &rval);
调用时抛出异常,注释屏蔽!
做了以上处理好调试正常。
NPAPI 随笔记一、 在chrome运行 npruntime demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。