Chrome более новая версия (14) не дает строку с нулевым символом в конце NPVariant - PullRequest
0 голосов
/ 18 октября 2011

chrome более новая версия (14) не дает строку с нулевым завершением как часть NPVariant, тогда как firefox действует по-другому и дает строку с нулевым завершением. Это ожидается ??

Что мы можем сделать, кроме извлечения строки, выделения памяти и добавления нулевого символа, а затем освобождения того же самого ..... все это только для добавления нулевого символа ??

1 Ответ

2 голосов
/ 18 октября 2011

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

...