chrome newer version(14)不会将NP终止字符串作为NPVariant的一部分

时间:2011-10-18 13:24:17

标签: google-chrome plugins npapi npruntime

chrome newer version(14)不会将空终止字符串作为NPVariant的一部分,而firefox的行为则不同,并提供以null结尾的字符串。这是预期的吗?

除了提取字符串,分配内存和添加空字符然后释放相同的字符外,我们还能做些什么.....这一切只是为了添加一个空字符?

1 个答案:

答案 0 :(得分:2)

从未要求NPVariant NPStrings包含NULL终止字符串。无论如何他们有时会这样做然而,它们所包含的是一个“长度”来表示该字符串的长度;我通常只是将它转换为std :: string,如下所示:

retVal = std::string(npVar->value.stringValue.UTF8Characters, npVar->value.stringValue.UTF8Length);

FireBreath就是这样做的; https://github.com/firebreath/FireBreath/blob/master/src/NpapiCore/NpapiBrowserHost.cpp#L253