Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问C+中的Javascript数组+/插件?_Javascript_Plugins_Npapi_Firebreath_Jsctypes - Fatal编程技术网

访问C+中的Javascript数组+/插件?

访问C+中的Javascript数组+/插件?,javascript,plugins,npapi,firebreath,jsctypes,Javascript,Plugins,Npapi,Firebreath,Jsctypes,我已经使用firebreath框架编写了一个NPAPI插件。我能够从Javascript传递简单的数值,并在我的(C++)插件中访问它们,执行操作,然后返回结果。我想知道现在如何操作向量,即数组。我不想在我的插件中分配新的数组,也不想从JavaScript复制数组(尽管我不知道怎么做)。如何直接访问插件中的JavaScript数组?有什么特别的方法吗 来自: Javascript对象可以与FB::JSObjectPtr类型一起使用。您可能希望使用的JavaScript对象示例包括: Javasc

我已经使用firebreath框架编写了一个NPAPI插件。我能够从Javascript传递简单的数值,并在我的(C++)插件中访问它们,执行操作,然后返回结果。我想知道现在如何操作向量,即数组。我不想在我的插件中分配新的数组,也不想从JavaScript复制数组(尽管我不知道怎么做)。如何直接访问插件中的JavaScript数组?有什么特别的方法吗

来自:

Javascript对象可以与FB::JSObjectPtr类型一起使用。您可能希望使用的JavaScript对象示例包括:

  • Javascript对象(具有方法和/或值成员)
  • Javascript数组(您计划修改它;否则您可以使用容器类型)
  • 用于回调的Javascript方法
  • 数组是对象;使用getProperty(n)或getProperty(“长度”)等获取值

    您还可以使用诸如->invoke(“push”、FB::variant\u list\u of(val))等方法

    (在JSAPI方法上,为了使用JSObjectPtr类型,您应该使用如下所示的方法:)


    还请记住,FireBreath无法判断它是什么类型的js对象,只是有一个js对象;如果他们没有给你一个实际的数组,而是给你一些其他的对象,你必须自己做错误检测。

    非常感谢。我甚至在考虑使用js ctypes(这显然要简单得多)。我知道js ctypes是特定于mozilla的,用于扩展。你认为两者有什么不同吗,即在哪方面一个比另一个好?我对它应该是扩展还是插件没有任何严格的要求。我只需要能够访问本机库。作为一般的经验法则,如果插件以外的东西可以完成工作,就这样做。除非您的应用程序没有其他可行的选项,否则不应使用插件。也就是说,我从来没有使用过js ctypes;我不做扩展。主要的缺点是,除非你编写多个版本,否则它们会将你锁定在一个特定的浏览器中。嗨,taxilian,我正在firebreath中尝试这样做。但它不起作用。你能告诉我怎么了吗void TestJSAPI::addvect(const FB::JSObjectPtr A,const FB::JSObjectPtr B,FB::JSObjectPtr&C,int N){int i=0;for(i=0;iSetProperty(i,sum);}}`新问题应该作为一个新问题提出,而不是在一个难以阅读的评论中;不过,最有可能的是,您需要使这些“const FB::JSObjectPtr&”(带引用)不仅仅是const。我读得不够好,猜不出还有什么好的。很抱歉。我马上发布一个新的详细问题
    void doSomethingWithAnArray(const FB::JSObjectPtr& array) { ... }