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

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

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

  • 相关阅读:
    C#使用Json
    JQuery AJAX介绍
    封装一个自己的 Ajax小框架
    AJAX跨域实现
    AJAX 一些常用方法
    完整的 AJAX 写法(支持多浏览器)
    AJAX 简单上手
    利用反射生成SQL语句
    访问Access数据库(有多个数据库时 体现多态)
    DataTable操作(建表,建行,建列,添加数据)
  • 原文地址:https://www.cnblogs.com/linweifu/p/4106475.html
Copyright © 2011-2022 走看看