zoukankan      html  css  js  c++  java
  • 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);

    调用时抛出异常,注释屏蔽!

    做了以上处理好调试正常。

  • 相关阅读:
    装饰器的加载顺序
    生成器
    迭代器
    有参装饰器与装饰器补充
    无参装饰器
    闭包函数
    函数对象与函数嵌套
    名称空间与作用域
    函数参数补充
    函数参数的使用
  • 原文地址:https://www.cnblogs.com/linweifu/p/4106475.html
Copyright © 2011-2022 走看看