首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要自己实现NPN函数吗?

我需要自己实现NPN函数吗?
EN

Stack Overflow用户
提问于 2012-07-26 01:40:15
回答 1查看 427关注 0票数 0

我的头文件来自:http://code.google.com/p/npapi-sdk/source/browse/?r=7#svn%2Fwiki

因此,在Initialize方法中,我存储了一个指向所有浏览器NPN方法的指针,如下所示

代码语言:javascript
复制
static NPNetscapeFuncs* browser;

NPError NP_Initialize(NPNetscapeFuncs* browserFuncs)
{  
  /* Save the browser function table. */
  browser = browserFuncs;

  return NPERR_NO_ERROR;
}

当我创建我的NPClass结构时,我是否应该像这样分配已经存在的浏览器函数:

代码语言:javascript
复制
struct NPClass class;
class.hasMethod = browser-> hasmethod;
etc.

或者,我是否需要使用浏览器函数来实现npruntimeheader中的函数,并以这种方式将它们分配给类。示例: class.hasMethod = NPN_HasMethod;

然后实现如下功能:

代码语言:javascript
复制
bool NPN_HasMethod(NPP npp, NPObject *npobj, NPIdentifier methodName)
{
   return browser->hasmethod(npp, npobj, methodName);
}

或者运行时标头中的NPN函数已经以某种方式实现了?

我需要用c语言来写这篇文章,我不认为在这个特殊的项目中使用firebreath会是一个好主意。提前感谢您的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 01:47:15

你需要自己为你的NPClasses实现函数,它们定义了你的脚本化对象的行为。出租车的Part three NPAPI教程涵盖了这一点。

通过browser函数表接收的函数用于调用浏览器(并且已经在浏览器中实现),例如使用hasmethod获取有关NPObject的信息等。

但是,如果您想使用像NPN_HasMethod()这样的函数声明,您需要自己实现它们,最简单的方法就是像您在HasMethod()中展示的那样,在browser中调用相应的函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11655465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档