NPAPI插件如何编写,自己要实现的功能函数写在什么地方

lee0102 2014-05-13 08:36:21
最近在研究NPAPI插件的开发,自己在网上看了一些资料,但仍是一头雾水啊。到现在还不清楚自己要实现的功能函数写在什么地方,求大神罩一下呀
...全文
274 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangxun_yu 2015-09-16
  • 打赏
  • 举报
回复
runtime就是一个完整的实例! 这个runtime在哪啊?
feitianxiaozi 2015-04-16
  • 打赏
  • 举报
回复
我有一个dialog的界面想要显示到插件里面。。。谁能给一个例子。。
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 15 楼 jianwen0529 的回复:
你编写插件你没下NPAPI的示例文件么?里面包含有的,网上也可以找到!!
好吧,解决了这个添加类的问题,太感谢你了,大神。哎,自己摸索着搞这个东西真苦逼啊,主要是我对c++还不是太熟悉,我之前是弄c#的、、、
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 15 楼 jianwen0529 的回复:
你编写插件你没下NPAPI的示例文件么?里面包含有的,网上也可以找到!!
好的,我找找看,刚接触这个
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
你编写插件你没下NPAPI的示例文件么?里面包含有的,网上也可以找到!!
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 13 楼 jianwen0529 的回复:
[quote=引用 12 楼 jianwen0529 的回复:] [quote=引用 10 楼 jianwen0529 的回复:] 那就是你没有这个文件或者没有设置正确的包含路径!!
或者你根本不是用这个基类![/quote] pluginbase.h 在这个文件里面,你自己看看有没有该头文件!有的话看看包含路径设置是否正确![/quote] 没有这个头文件,要怎么弄呢?找一个这个头文件吗?
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
引用 12 楼 jianwen0529 的回复:
[quote=引用 10 楼 jianwen0529 的回复:] 那就是你没有这个文件或者没有设置正确的包含路径!!
或者你根本不是用这个基类![/quote] pluginbase.h 在这个文件里面,你自己看看有没有该头文件!有的话看看包含路径设置是否正确!
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
引用 10 楼 jianwen0529 的回复:
那就是你没有这个文件或者没有设置正确的包含路径!!
或者你根本不是用这个基类!
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 2 楼 jianwen0529 的回复:
http://www.tuicool.com/articles/uERf6ja
我这在添加的时候总是会报出找不到这个基类,该怎么解决呀
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
那就是你没有这个文件或者没有设置正确的包含路径!!
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 8 楼 jianwen0529 的回复:
[quote=引用 6 楼 lee0102 的回复:] [quote=引用 2 楼 jianwen0529 的回复:] http://www.tuicool.com/articles/uERf6ja
[/quote] 是的,你只需要用到它的接口就可以了![/quote] 为什么我按照这个方法创建类的时候总是会提示缺少这个基类
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
引用 6 楼 lee0102 的回复:
[quote=引用 2 楼 jianwen0529 的回复:] http://www.tuicool.com/articles/uERf6ja
[/quote] 是的,你只需要用到它的接口就可以了!
lee0102 2014-05-14
  • 打赏
  • 举报
回复
为什么这个说的创建的类的时候必须要继承nsPluginInstanceBase啊,而我按照这个方法创建类的时候总是会提示缺少这个基类
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 2 楼 jianwen0529 的回复:
http://www.tuicool.com/articles/uERf6ja
幻夢之葉 2014-05-14
  • 打赏
  • 举报
回复
引用 4 楼 lee0102 的回复:
[quote=引用 1 楼 jianwen0529 的回复:] 参考示例下的runtime例子! 该例子下: ScriptablePluginObject::HasProperty //判断是否有该属性 ScriptablePluginObject::HasMethod //判断是否有该方法 以上通过if判定,自己写处理代码

bool ScriptablePluginObject::HasMethod(NPIdentifier name)
{
    return name == func_open;
}

//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::HasProperty(NPIdentifier name)
{
    if( name == prop_file !! name == prop_name ) //prop_file 及 prop_name 是你自定义的属性名称,上同,返回true会
        //调用下面处理函数
        retrun true;
}
//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::Invoke(NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    if( name == func_open )
    {
        // 你的处理,即调用了该func_open函数,属性处理同
    }

    return false;
}
//////////////////////////////////////////////////////////////////////////
//如果Invoke函数没给出处理,默认会在该函数进行处理
bool ScriptablePluginObject::InvokeDefault(const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    return false;
}
//希望对你有些许帮助
还有更详细的吗,有没有具体的实例呀[/quote] runtime就是一个完整的实例!
lee0102 2014-05-14
  • 打赏
  • 举报
回复
引用 1 楼 jianwen0529 的回复:
参考示例下的runtime例子! 该例子下: ScriptablePluginObject::HasProperty //判断是否有该属性 ScriptablePluginObject::HasMethod //判断是否有该方法 以上通过if判定,自己写处理代码

bool ScriptablePluginObject::HasMethod(NPIdentifier name)
{
    return name == func_open;
}

//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::HasProperty(NPIdentifier name)
{
    if( name == prop_file !! name == prop_name ) //prop_file 及 prop_name 是你自定义的属性名称,上同,返回true会
        //调用下面处理函数
        retrun true;
}
//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::Invoke(NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    if( name == func_open )
    {
        // 你的处理,即调用了该func_open函数,属性处理同
    }

    return false;
}
//////////////////////////////////////////////////////////////////////////
//如果Invoke函数没给出处理,默认会在该函数进行处理
bool ScriptablePluginObject::InvokeDefault(const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    return false;
}
//希望对你有些许帮助
还有更详细的吗,有没有具体的实例呀
幻夢之葉 2014-05-13
  • 打赏
  • 举报
回复
参考示例下的runtime例子! 该例子下: ScriptablePluginObject::HasProperty //判断是否有该属性 ScriptablePluginObject::HasMethod //判断是否有该方法 以上通过if判定,自己写处理代码

bool ScriptablePluginObject::HasMethod(NPIdentifier name)
{
    return name == func_open;
}

//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::HasProperty(NPIdentifier name)
{
    if( name == prop_file !! name == prop_name ) //prop_file 及 prop_name 是你自定义的属性名称,上同,返回true会
        //调用下面处理函数
        retrun true;
}
//////////////////////////////////////////////////////////////////////////
bool ScriptablePluginObject::Invoke(NPIdentifier name, const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    if( name == func_open )
    {
        // 你的处理,即调用了该func_open函数,属性处理同
    }

    return false;
}
//////////////////////////////////////////////////////////////////////////
//如果Invoke函数没给出处理,默认会在该函数进行处理
bool ScriptablePluginObject::InvokeDefault(const NPVariant *args, uint32_t argCount, NPVariant *result)
{
    return false;
}
//希望对你有些许帮助
lee0102 2014-05-13
  • 打赏
  • 举报
回复
还是不太明白,有没有这方面的有注释说明的实例啊?本人对这一块儿完全是从零开始啊

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧