如何从v8 c ++函数返回vector <t> </t>

时间:2012-11-08 04:41:15

标签: javascript c++ v8

struct empDetails {
int empId;
string name;
};

v8::Handle<v8::Value> GetEMPDetails(const v8::Arguments &args)
{  
    std::vector<empDetails>  e1;
    e1.push_back(empDetails(23, "paul"));
    e1.push_back(empDetails(45, "john")); 

    // how can I return V8 handle so that I can use this vector in 
    // my javascript module
    return e1; 
}

这里我想将e1返回到javascript模块,有人可以告诉我该怎么做吗?

1 个答案:

答案 0 :(得分:2)

使用v8::Array,例如:

v8::Handle<v8::Array> result = v8::Array::New(e1.size());
for (size_t i = 0; i < e1.size(); i++)
  result->Set(i, someObject);

显然,您仍然需要将empDetails个实例转换为v8::Object,以便向量中的每个条目。