1

Я работаю над расширением google chrome, в котором я получаю массив целых чисел из расширения на pp::Var shared = dict_message.Get("shared_list");. Теперь мне нужно передать этот массив функции C, поэтому нужно получить элементы в int*. Как мне это сделать?Преобразование массива pp :: Var в chrome native client для целочисленного массива C

+1

Ваш вопрос будет лучше, если вы должны были найти некоторые документы, чтобы читать, и попробовать что-то, возвращаясь, если у вас есть проблемы с тем, что вы пробовали ... – Sebivor

ответ

2

Во-первых, убедитесь, что pp::Var - это действительно массив.

if (shared.is_array()) { 

Затем используйте интерфейсы, предоставляемые классом pp::VarArray.

pp::VarArray array(shared); 
    int * carray = new int[array.GetLength()]; 
    for (uint32_t i = 0; i < array.GetLength(); ++i) { 
     pp::Var oneElem(array.Get(i)); 
     assert(oneElem.is_number()); 
     carray[i] = oneElem.AsInt(); 
    } 
    // carray is ready to use 
    delete [] carray; 
} 
+0

Это тот же код для C++? Я знаю, что C++ может работать с C, но, возможно, он будет короче для C++. У меня такая же проблема в моем коде на C++. – TalG

+1

Это уже C++. – timrau

+0

Спасибо, я был смущен из-за названия этого вопроса. – TalG

Смежные вопросы