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);

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

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

  • 相关阅读:
    考试
    aws代理
    ansible debug
    apollo docker 安装 使用镜像 idoop/docker-apollo
    java jvm 内存监控工具visualvm 的使用
    kong dashboard UI 的使用 (使用kong 对服务反向代理,以及解决跨域问题)
    git账号
    kong Gateway && PostgreSQL 的安装(docker)
    apollo 配置中心的安装与使用
    springboot 开发模式 dev
  • 原文地址:https://www.cnblogs.com/linweifu/p/4106475.html
Copyright © 2011-2022 走看看