传递给NPAPI插件函数时,javascript参数搞砸了

时间:2011-07-03 10:09:49

标签: plugins google-chrome npapi

我正在使用来自https://github.com/mikma/npsimple的简单NPAPI示例。

当我尝试将参数从javascript传递给NPAPI调用函数时, NPAPI函数收到的参数是垃圾,尽管参数计数是 正确传递。以下是我试图在将它们转换为char *后打印“args”数组的函数的定义:

invoke(NPObject* obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result)

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:2)

根据你给我们的东西,很难说你要做什么。具体来说,正如smorgan所要求的,我们需要知道你是如何尝试将args数组转换为char *。

您了解NPVariant的工作原理?如果它是一个字符串,NPVariant类型将是NPVariantType_String,您将需要同时使用NPString结构的UTF8Characters成员(后者又是NPVariant联合的一部分)和UTF8Length成员,因为字符串可以或者可能不会被终止。

另外,请记住,根据您输入的内容,使NPVariant成为char *可能有效也可能无效。如果这有帮助,那很好;如果没有,请发布您尝试处理输入的函数的内容以及您正在进行的特定javascript调用。你没有给我们足够的工作来给你更多的猜测,你可能会遇到什么问题。