码迷,mamicode.com
首页 > Windows程序 > 详细

NPAPI 随笔记一、 在chrome运行 npruntime demo

时间:2014-11-18 23:42:33      阅读:382      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   http   io   ar   color   使用   sp   

在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

标签:des   style   blog   http   io   ar   color   使用   sp   

原文地址:http://www.cnblogs.com/linweifu/p/4106475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!